
// DO NOT EDIT. This file is automatically generated from `ob_errno.def'.

// Copyright 2016 Alibaba Inc. All Rights Reserved.
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
// ob_errno.h
//   Author:
//   Normalizer:

#define USING_LOG_PREFIX LIB_MYSQLC

// DO NOT DELETE `#include <iostream>` !!!
// fix: ob_error.cpp file requires at least 20g memory for release(-O2) compilation
// and will jam when asan turned on
// it can be solved by introducing <iostream> header file currently
// TODO: it is clang bug and the specific reason to be further located
// issue:
#include <iostream>

#include "ob_errno.h"
#ifndef __ERROR_CODE_PARSER_
#include "ob_define.h"
#include "lib/utility/ob_edit_distance.h"
#else
#define OB_LIKELY
#define OB_UNLIKELY
#include <string.h>
#endif
using namespace oceanbase::common;

struct _error {
  public:
    const char *error_name;
    const char *error_cause;
    const char *error_solution;
    int         mysql_errno;
    const char *sqlstate;
    const char *str_error;
    const char *str_user_error;
    int         oracle_errno;
    const char *oracle_str_error;
    const char *oracle_str_user_error;
};
static _error _error_default;
static _error const *_errors[OB_MAX_ERROR_CODE] = {NULL};
static const _error _error_OB_ERROR = {
      .error_name            = "OB_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Common error",
      .str_user_error        = "Common error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4000, Common error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4000, Common error"
};
static const _error _error_OB_OBJ_TYPE_ERROR = {
      .error_name            = "OB_OBJ_TYPE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY004",
      .str_error             = "Object type error",
      .str_user_error        = "Object type error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4001, Object type error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4001, Object type error"
};
static const _error _error_OB_INVALID_ARGUMENT = {
      .error_name            = "OB_INVALID_ARGUMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_ARGUMENTS,
      .sqlstate              = "HY000",
      .str_error             = "Invalid argument",
      .str_user_error        = "Incorrect arguments to %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4002, Invalid argument",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4002, Incorrect arguments to %s"
};
static const _error _error_OB_ARRAY_OUT_OF_RANGE = {
      .error_name            = "OB_ARRAY_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Array index out of range",
      .str_user_error        = "Array index out of range",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4003, Array index out of range",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4003, Array index out of range"
};
static const _error _error_OB_SERVER_LISTEN_ERROR = {
      .error_name            = "OB_SERVER_LISTEN_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "08S01",
      .str_error             = "Failed to listen to the port",
      .str_user_error        = "Failed to listen to the port",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4004, Failed to listen to the port",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4004, Failed to listen to the port"
};
static const _error _error_OB_INIT_TWICE = {
      .error_name            = "OB_INIT_TWICE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The object is initialized twice",
      .str_user_error        = "The object is initialized twice",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4005, The object is initialized twice",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4005, The object is initialized twice"
};
static const _error _error_OB_NOT_INIT = {
      .error_name            = "OB_NOT_INIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The object is not initialized",
      .str_user_error        = "The object is not initialized",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4006, The object is not initialized",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4006, The object is not initialized"
};
static const _error _error_OB_NOT_SUPPORTED = {
      .error_name            = "OB_NOT_SUPPORTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NOT_SUPPORTED_YET,
      .sqlstate              = "0A000",
      .str_error             = "Not supported feature or function",
      .str_user_error        = "%s not supported",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4007, Not supported feature or function",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4007, %s not supported"
};
static const _error _error_OB_ITER_END = {
      .error_name            = "OB_ITER_END",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "End of iteration",
      .str_user_error        = "End of iteration",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4008, End of iteration",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4008, End of iteration"
};
static const _error _error_OB_IO_ERROR = {
      .error_name            = "OB_IO_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "58030",
      .str_error             = "IO error",
      .str_user_error        = "IO error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4009, IO error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4009, IO error"
};
static const _error _error_OB_ERROR_FUNC_VERSION = {
      .error_name            = "OB_ERROR_FUNC_VERSION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Wrong RPC command version",
      .str_user_error        = "Wrong RPC command version",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4010, Wrong RPC command version",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4010, Wrong RPC command version"
};
static const _error _error_OB_PACKET_NOT_SENT = {
      .error_name            = "OB_PACKET_NOT_SENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Can not send packet",
      .str_user_error        = "Can not send packet",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4011, Can not send packet",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4011, Can not send packet"
};
static const _error _error_OB_TIMEOUT = {
      .error_name            = "OB_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Timeout",
      .str_user_error        = "Timeout, query has reached the maximum query timeout: %ld(us), maybe you can adjust the session variable ob_query_timeout or query_timeout hint, and try again.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4012, Timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4012, Timeout, query has reached the maximum query timeout: %ld(us), maybe you can adjust the session variable ob_query_timeout or query_timeout hint, and try again."
};
static const _error _error_OB_ALLOCATE_MEMORY_FAILED = {
      .error_name            = "OB_ALLOCATE_MEMORY_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY001",
      .str_error             = "No memory or reach tenant memory limit",
      .str_user_error        = "No memory or reach tenant memory limit",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4013, No memory or reach tenant memory limit",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4013, No memory or reach tenant memory limit"
};
static const _error _error_OB_INNER_STAT_ERROR = {
      .error_name            = "OB_INNER_STAT_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Inner state error",
      .str_user_error        = "Inner state error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4014, Inner state error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4014, Inner state error"
};
static const _error _error_OB_ERR_SYS = {
      .error_name            = "OB_ERR_SYS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "System error",
      .str_user_error        = "System error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4015, System error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4015, System error"
};
static const _error _error_OB_ERR_UNEXPECTED = {
      .error_name            = "OB_ERR_UNEXPECTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Internal error",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4016, Internal error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4016, %s"
};
static const _error _error_OB_ENTRY_EXIST = {
      .error_name            = "OB_ENTRY_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Entry already exist",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4017, Entry already exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4017, %s"
};
static const _error _error_OB_ENTRY_NOT_EXIST = {
      .error_name            = "OB_ENTRY_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Entry not exist",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4018, Entry not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4018, %s"
};
static const _error _error_OB_SIZE_OVERFLOW = {
      .error_name            = "OB_SIZE_OVERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Size overflow",
      .str_user_error        = "Size overflow",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4019, Size overflow",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4019, Size overflow"
};
static const _error _error_OB_REF_NUM_NOT_ZERO = {
      .error_name            = "OB_REF_NUM_NOT_ZERO",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Reference count is not zero",
      .str_user_error        = "Reference count is not zero",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4020, Reference count is not zero",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4020, Reference count is not zero"
};
static const _error _error_OB_CONFLICT_VALUE = {
      .error_name            = "OB_CONFLICT_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Conflict value",
      .str_user_error        = "Conflict value",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4021, Conflict value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4021, Conflict value"
};
static const _error _error_OB_ITEM_NOT_SETTED = {
      .error_name            = "OB_ITEM_NOT_SETTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Item not set",
      .str_user_error        = "Item not set",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4022, Item not set",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4022, Item not set"
};
static const _error _error_OB_EAGAIN = {
      .error_name            = "OB_EAGAIN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Try again",
      .str_user_error        = "Try again",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4023, Try again",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4023, Try again"
};
static const _error _error_OB_BUF_NOT_ENOUGH = {
      .error_name            = "OB_BUF_NOT_ENOUGH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Buffer not enough",
      .str_user_error        = "Buffer not enough",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4024, Buffer not enough",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4024, Buffer not enough"
};
static const _error _error_OB_PARTIAL_FAILED = {
      .error_name            = "OB_PARTIAL_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Partial failed",
      .str_user_error        = "Partial failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4025, Partial failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4025, Partial failed"
};
static const _error _error_OB_READ_NOTHING = {
      .error_name            = "OB_READ_NOTHING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_FETCH_NO_DATA,
      .sqlstate              = "02000",
      .str_error             = "No data - zero rows fetched, selected, or processed",
      .str_user_error        = "No data - zero rows fetched, selected, or processed",
      .oracle_errno          = 1403,
      .oracle_str_error      = "ORA-01403: no data found",
      .oracle_str_user_error = "ORA-01403: no data found"
};
static const _error _error_OB_FILE_NOT_EXIST = {
      .error_name            = "OB_FILE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_FILE_NOT_FOUND,
      .sqlstate              = "HY000",
      .str_error             = "File not exist",
      .str_user_error        = "File not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4027, File not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4027, File not exist"
};
static const _error _error_OB_DISCONTINUOUS_LOG = {
      .error_name            = "OB_DISCONTINUOUS_LOG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Log entry not continuous",
      .str_user_error        = "Log entry not continuous",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4028, Log entry not continuous",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4028, Log entry not continuous"
};
static const _error _error_OB_SCHEMA_ERROR = {
      .error_name            = "OB_SCHEMA_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Schema error",
      .str_user_error        = "Schema error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4029, Schema error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4029, Schema error"
};
static const _error _error_OB_TENANT_OUT_OF_MEM = {
      .error_name            = "OB_TENANT_OUT_OF_MEM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Over tenant memory limits",
      .str_user_error        = "Over tenant memory limits",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4030, Over tenant memory limits",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4030, Over tenant memory limits"
};
static const _error _error_OB_UNKNOWN_OBJ = {
      .error_name            = "OB_UNKNOWN_OBJ",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY004",
      .str_error             = "Unknown object",
      .str_user_error        = "Unknown object",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4031, Unknown object",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4031, Unknown object"
};
static const _error _error_OB_NO_MONITOR_DATA = {
      .error_name            = "OB_NO_MONITOR_DATA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "02000",
      .str_error             = "No monitor data",
      .str_user_error        = "No monitor data",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4032, No monitor data",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4032, No monitor data"
};
static const _error _error_OB_SERIALIZE_ERROR = {
      .error_name            = "OB_SERIALIZE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Serialize error",
      .str_user_error        = "Serialize error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4033, Serialize error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4033, Serialize error"
};
static const _error _error_OB_DESERIALIZE_ERROR = {
      .error_name            = "OB_DESERIALIZE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Deserialize error",
      .str_user_error        = "Deserialize error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4034, Deserialize error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4034, Deserialize error"
};
static const _error _error_OB_AIO_TIMEOUT = {
      .error_name            = "OB_AIO_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Asynchronous IO error",
      .str_user_error        = "Asynchronous IO error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4035, Asynchronous IO error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4035, Asynchronous IO error"
};
static const _error _error_OB_NEED_RETRY = {
      .error_name            = "OB_NEED_RETRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Need retry",
      .str_user_error        = "Need retry",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4036, Need retry",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4036, Need retry"
};
static const _error _error_OB_TOO_MANY_SSTABLE = {
      .error_name            = "OB_TOO_MANY_SSTABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Too many sstable",
      .str_user_error        = "Too many sstable",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4037, Too many sstable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4037, Too many sstable"
};
static const _error _error_OB_NOT_MASTER = {
      .error_name            = "OB_NOT_MASTER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The observer or zone is not the master",
      .str_user_error        = "The observer or zone is not the master",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4038, The observer or zone is not the master",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4038, The observer or zone is not the master"
};
static const _error _error_OB_KILLED_BY_THROTTLING = {
      .error_name            = "OB_KILLED_BY_THROTTLING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Request has killed by sql throttle",
      .str_user_error        = "Request has killed by sql throttle",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4039, Request has killed by sql throttle",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4039, Request has killed by sql throttle"
};
static const _error _error_OB_DECRYPT_FAILED = {
      .error_name            = "OB_DECRYPT_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Decrypt error",
      .str_user_error        = "Decrypt error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4041, Decrypt error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4041, Decrypt error"
};
static const _error _error_OB_USER_NOT_EXIST = {
      .error_name            = "OB_USER_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PASSWORD_NO_MATCH,
      .sqlstate              = "42000",
      .str_error             = "Can not find any matching row in the user table",
      .str_user_error        = "Can not find any matching row in the user table'%.*s'",
      .oracle_errno          = 1918,
      .oracle_str_error      = "ORA-01918: user does not exist",
      .oracle_str_user_error = "ORA-01918: user '%.*s' does not exist"
};
static const _error _error_OB_PASSWORD_WRONG = {
      .error_name            = "OB_PASSWORD_WRONG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_ACCESS_DENIED_ERROR,
      .sqlstate              = "42000",
      .str_error             = "Access denied for user",
      .str_user_error        = "Access denied for user '%.*s'@'%.*s' (using password: %s)",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4043, Access denied for user",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4043, Access denied for user '%.*s'@'%.*s' (using password: %s)"
};
static const _error _error_OB_SKEY_VERSION_WRONG = {
      .error_name            = "OB_SKEY_VERSION_WRONG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Wrong skey version",
      .str_user_error        = "Wrong skey version",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4044, Wrong skey version",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4044, Wrong skey version"
};
static const _error _error_OB_PUSHDOWN_STATUS_CHANGED = {
      .error_name            = "OB_PUSHDOWN_STATUS_CHANGED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "pushdown status changed",
      .str_user_error        = "pushdown status changed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4045, pushdown status changed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4045, pushdown status changed"
};
static const _error _error_OB_STORAGE_SCHEMA_INVALID = {
      .error_name            = "OB_STORAGE_SCHEMA_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Storage schema is not valid",
      .str_user_error        = "Storage schema is not valid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4046, Storage schema is not valid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4046, Storage schema is not valid"
};
static const _error _error_OB_MEDIUM_COMPACTION_INFO_INVALID = {
      .error_name            = "OB_MEDIUM_COMPACTION_INFO_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Medium compaction info is not valid",
      .str_user_error        = "Medium compaction info is not valid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4047, Medium compaction info is not valid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4047, Medium compaction info is not valid"
};
static const _error _error_OB_NOT_REGISTERED = {
      .error_name            = "OB_NOT_REGISTERED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Not registered",
      .str_user_error        = "Not registered",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4048, Not registered",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4048, Not registered"
};
static const _error _error_OB_WAITQUEUE_TIMEOUT = {
      .error_name            = "OB_WAITQUEUE_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 4012,
      .sqlstate              = "HY000",
      .str_error             = "Task timeout and not executed",
      .str_user_error        = "Task timeout and not executed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4049, Task timeout and not executed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4049, Task timeout and not executed"
};
static const _error _error_OB_NOT_THE_OBJECT = {
      .error_name            = "OB_NOT_THE_OBJECT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Not the object",
      .str_user_error        = "Not the object",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4050, Not the object",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4050, Not the object"
};
static const _error _error_OB_ALREADY_REGISTERED = {
      .error_name            = "OB_ALREADY_REGISTERED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Already registered",
      .str_user_error        = "Already registered",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4051, Already registered",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4051, Already registered"
};
static const _error _error_OB_LAST_LOG_RUINNED = {
      .error_name            = "OB_LAST_LOG_RUINNED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Corrupted log entry",
      .str_user_error        = "Corrupted log entry",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4052, Corrupted log entry",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4052, Corrupted log entry"
};
static const _error _error_OB_NO_CS_SELECTED = {
      .error_name            = "OB_NO_CS_SELECTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "No Server selected",
      .str_user_error        = "No Server selected",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4053, No Server selected",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4053, No Server selected"
};
static const _error _error_OB_NO_TABLETS_CREATED = {
      .error_name            = "OB_NO_TABLETS_CREATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "No tablets created",
      .str_user_error        = "No tablets created",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4054, No tablets created",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4054, No tablets created"
};
static const _error _error_OB_INVALID_ERROR = {
      .error_name            = "OB_INVALID_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid entry",
      .str_user_error        = "Invalid entry",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4055, Invalid entry",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4055, Invalid entry"
};
static const _error _error_OB_DECIMAL_OVERFLOW_WARN = {
      .error_name            = "OB_DECIMAL_OVERFLOW_WARN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Decimal overflow warning",
      .str_user_error        = "Decimal overflow warning",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4057, Decimal overflow warning",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4057, Decimal overflow warning"
};
static const _error _error_OB_DECIMAL_UNLEGAL_ERROR = {
      .error_name            = "OB_DECIMAL_UNLEGAL_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Decimal overflow error",
      .str_user_error        = "Decimal overflow error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4058, Decimal overflow error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4058, Decimal overflow error"
};
static const _error _error_OB_OBJ_DIVIDE_ERROR = {
      .error_name            = "OB_OBJ_DIVIDE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Divide error",
      .str_user_error        = "Divide error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4060, Divide error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4060, Divide error"
};
static const _error _error_OB_NOT_A_DECIMAL = {
      .error_name            = "OB_NOT_A_DECIMAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Not a decimal",
      .str_user_error        = "Not a decimal",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4061, Not a decimal",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4061, Not a decimal"
};
static const _error _error_OB_DECIMAL_PRECISION_NOT_EQUAL = {
      .error_name            = "OB_DECIMAL_PRECISION_NOT_EQUAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY104",
      .str_error             = "Decimal precision error",
      .str_user_error        = "Decimal precision error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4062, Decimal precision error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4062, Decimal precision error"
};
static const _error _error_OB_EMPTY_RANGE = {
      .error_name            = "OB_EMPTY_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Empty range",
      .str_user_error        = "Empty range",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4063, Empty range",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4063, Empty range"
};
static const _error _error_OB_SESSION_KILLED = {
      .error_name            = "OB_SESSION_KILLED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Session killed",
      .str_user_error        = "Session killed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4064, Session killed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4064, Session killed"
};
static const _error _error_OB_LOG_NOT_SYNC = {
      .error_name            = "OB_LOG_NOT_SYNC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Log not sync",
      .str_user_error        = "Log not sync",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4065, Log not sync",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4065, Log not sync"
};
static const _error _error_OB_DIR_NOT_EXIST = {
      .error_name            = "OB_DIR_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_READ_DIR,
      .sqlstate              = "HY000",
      .str_error             = "Directory not exist",
      .str_user_error        = "Directory not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4066, Directory not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4066, Directory not exist"
};
static const _error _error_OB_SESSION_NOT_FOUND = {
      .error_name            = "OB_SESSION_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 4012,
      .sqlstate              = "HY000",
      .str_error             = "RPC session not found",
      .str_user_error        = "RPC session not found",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4067, RPC session not found",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4067, RPC session not found"
};
static const _error _error_OB_INVALID_LOG = {
      .error_name            = "OB_INVALID_LOG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid log",
      .str_user_error        = "Invalid log",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4068, Invalid log",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4068, Invalid log"
};
static const _error _error_OB_INVALID_DATA = {
      .error_name            = "OB_INVALID_DATA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid data",
      .str_user_error        = "Invalid data",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4070, Invalid data",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4070, Invalid data"
};
static const _error _error_OB_ALREADY_DONE = {
      .error_name            = "OB_ALREADY_DONE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Already done",
      .str_user_error        = "Already done",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4071, Already done",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4071, Already done"
};
static const _error _error_OB_CANCELED = {
      .error_name            = "OB_CANCELED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Operation canceled",
      .str_user_error        = "Operation canceled",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4072, Operation canceled",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4072, Operation canceled"
};
static const _error _error_OB_LOG_SRC_CHANGED = {
      .error_name            = "OB_LOG_SRC_CHANGED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Log source changed",
      .str_user_error        = "Log source changed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4073, Log source changed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4073, Log source changed"
};
static const _error _error_OB_LOG_NOT_ALIGN = {
      .error_name            = "OB_LOG_NOT_ALIGN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Log not aligned",
      .str_user_error        = "Log not aligned",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4074, Log not aligned",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4074, Log not aligned"
};
static const _error _error_OB_LOG_MISSING = {
      .error_name            = "OB_LOG_MISSING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Log entry missed",
      .str_user_error        = "Log entry missed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4075, Log entry missed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4075, Log entry missed"
};
static const _error _error_OB_NEED_WAIT = {
      .error_name            = "OB_NEED_WAIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Need wait",
      .str_user_error        = "Need wait",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4076, Need wait",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4076, Need wait"
};
static const _error _error_OB_NOT_IMPLEMENT = {
      .error_name            = "OB_NOT_IMPLEMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "0A000",
      .str_error             = "Not implemented feature",
      .str_user_error        = "Not implemented feature",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4077, Not implemented feature",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4077, Not implemented feature"
};
static const _error _error_OB_DIVISION_BY_ZERO = {
      .error_name            = "OB_DIVISION_BY_ZERO",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DIVISION_BY_ZERO,
      .sqlstate              = "22012",
      .str_error             = "Divided by zero",
      .str_user_error        = "Divided by zero",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4078, Divided by zero",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4078, Divided by zero"
};
static const _error _error_OB_EXCEED_MEM_LIMIT = {
      .error_name            = "OB_EXCEED_MEM_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY013",
      .str_error             = "exceed memory limit",
      .str_user_error        = "exceed memory limit",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4080, exceed memory limit",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4080, exceed memory limit"
};
static const _error _error_OB_RESULT_UNKNOWN = {
      .error_name            = "OB_RESULT_UNKNOWN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Unknown result",
      .str_user_error        = "Unknown result",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4081, Unknown result",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4081, Unknown result"
};
static const _error _error_OB_NO_RESULT = {
      .error_name            = "OB_NO_RESULT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "02000",
      .str_error             = "No result",
      .str_user_error        = "No result",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4084, No result",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4084, No result"
};
static const _error _error_OB_QUEUE_OVERFLOW = {
      .error_name            = "OB_QUEUE_OVERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Queue overflow",
      .str_user_error        = "Queue overflow",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4085, Queue overflow",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4085, Queue overflow"
};
static const _error _error_OB_LOG_ID_RANGE_NOT_CONTINUOUS = {
      .error_name            = "OB_LOG_ID_RANGE_NOT_CONTINUOUS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Table log_id range no continuous",
      .str_user_error        = "Table log_id range no continuous",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4090, Table log_id range no continuous",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4090, Table log_id range no continuous"
};
static const _error _error_OB_TERM_LAGGED = {
      .error_name            = "OB_TERM_LAGGED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Term lagged",
      .str_user_error        = "Term lagged",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4097, Term lagged",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4097, Term lagged"
};
static const _error _error_OB_TERM_NOT_MATCH = {
      .error_name            = "OB_TERM_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Term not match",
      .str_user_error        = "Term not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4098, Term not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4098, Term not match"
};
static const _error _error_OB_START_LOG_CURSOR_INVALID = {
      .error_name            = "OB_START_LOG_CURSOR_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid log cursor",
      .str_user_error        = "Invalid log cursor",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4099, Invalid log cursor",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4099, Invalid log cursor"
};
static const _error _error_OB_LOCK_NOT_MATCH = {
      .error_name            = "OB_LOCK_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Lock not match",
      .str_user_error        = "Lock not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4100, Lock not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4100, Lock not match"
};
static const _error _error_OB_DEAD_LOCK = {
      .error_name            = "OB_DEAD_LOCK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_LOCK_DEADLOCK,
      .sqlstate              = "HY000",
      .str_error             = "Deadlock",
      .str_user_error        = "Deadlock",
      .oracle_errno          = 60,
      .oracle_str_error      = "ORA-00060: deadlock detected while waiting for resource",
      .oracle_str_user_error = "ORA-00060: deadlock detected while waiting for resource"
};
static const _error _error_OB_PARTIAL_LOG = {
      .error_name            = "OB_PARTIAL_LOG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Incomplete log entry",
      .str_user_error        = "Incomplete log entry",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4102, Incomplete log entry",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4102, Incomplete log entry"
};
static const _error _error_OB_CHECKSUM_ERROR = {
      .error_name            = "OB_CHECKSUM_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Data checksum error",
      .str_user_error        = "Data checksum error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4103, Data checksum error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4103, Data checksum error"
};
static const _error _error_OB_INIT_FAIL = {
      .error_name            = "OB_INIT_FAIL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Initialize error",
      .str_user_error        = "Initialize error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4104, Initialize error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4104, Initialize error"
};
static const _error _error_OB_ROWKEY_ORDER_ERROR = {
      .error_name            = "OB_ROWKEY_ORDER_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Rowkey order error",
      .str_user_error        = "Rowkey order error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4105, Rowkey order error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4105, Rowkey order error"
};
static const _error _error_OB_NOT_ENOUGH_STORE = {
      .error_name            = "OB_NOT_ENOUGH_STORE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not enough commitlog store",
      .str_user_error        = "not enough commitlog store",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4106, not enough commitlog store",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4106, not enough commitlog store"
};
static const _error _error_OB_BLOCK_SWITCHED = {
      .error_name            = "OB_BLOCK_SWITCHED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "block switched when fill commitlog",
      .str_user_error        = "block switched when fill commitlog",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4107, block switched when fill commitlog",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4107, block switched when fill commitlog"
};
static const _error _error_OB_PHYSIC_CHECKSUM_ERROR = {
      .error_name            = "OB_PHYSIC_CHECKSUM_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Physic data checksum error",
      .str_user_error        = "Physic data checksum error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4108, Physic data checksum error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4108, Physic data checksum error"
};
static const _error _error_OB_STATE_NOT_MATCH = {
      .error_name            = "OB_STATE_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Server state or role not the same as expected",
      .str_user_error        = "Server state or role not the same as expected",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4109, Server state or role not the same as expected",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4109, Server state or role not the same as expected"
};
static const _error _error_OB_READ_ZERO_LOG = {
      .error_name            = "OB_READ_ZERO_LOG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Read zero log",
      .str_user_error        = "Read zero log",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4110, Read zero log",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4110, Read zero log"
};
static const _error _error_OB_BLOCK_NEED_FREEZE = {
      .error_name            = "OB_BLOCK_NEED_FREEZE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "block need freeze",
      .str_user_error        = "block need freeze",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4111, block need freeze",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4111, block need freeze"
};
static const _error _error_OB_BLOCK_FROZEN = {
      .error_name            = "OB_BLOCK_FROZEN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "block frozen",
      .str_user_error        = "block frozen",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4112, block frozen",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4112, block frozen"
};
static const _error _error_OB_IN_FATAL_STATE = {
      .error_name            = "OB_IN_FATAL_STATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "In FATAL state",
      .str_user_error        = "In FATAL state",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4113, In FATAL state",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4113, In FATAL state"
};
static const _error _error_OB_IN_STOP_STATE = {
      .error_name            = "OB_IN_STOP_STATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "08S01",
      .str_error             = "In STOP state",
      .str_user_error        = "In STOP state",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4114, In STOP state",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4114, In STOP state"
};
static const _error _error_OB_UPS_MASTER_EXISTS = {
      .error_name            = "OB_UPS_MASTER_EXISTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Master UpdateServer already exists",
      .str_user_error        = "Master UpdateServer already exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4115, Master UpdateServer already exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4115, Master UpdateServer already exists"
};
static const _error _error_OB_LOG_NOT_CLEAR = {
      .error_name            = "OB_LOG_NOT_CLEAR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Log not clear",
      .str_user_error        = "Log not clear",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4116, Log not clear",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4116, Log not clear"
};
static const _error _error_OB_FILE_ALREADY_EXIST = {
      .error_name            = "OB_FILE_ALREADY_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_FILE_EXISTS_ERROR,
      .sqlstate              = "58000",
      .str_error             = "File already exist",
      .str_user_error        = "File already exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4117, File already exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4117, File already exist"
};
static const _error _error_OB_UNKNOWN_PACKET = {
      .error_name            = "OB_UNKNOWN_PACKET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNKNOWN_COM_ERROR,
      .sqlstate              = "HY001",
      .str_error             = "Unknown packet",
      .str_user_error        = "Unknown packet",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4118, Unknown packet",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4118, Unknown packet"
};
static const _error _error_OB_RPC_PACKET_TOO_LONG = {
      .error_name            = "OB_RPC_PACKET_TOO_LONG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "08000",
      .str_error             = "RPC packet to send too long",
      .str_user_error        = "RPC packet to send too long",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4119, RPC packet to send too long",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4119, RPC packet to send too long"
};
static const _error _error_OB_LOG_TOO_LARGE = {
      .error_name            = "OB_LOG_TOO_LARGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Log too large",
      .str_user_error        = "Log too large",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4120, Log too large",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4120, Log too large"
};
static const _error _error_OB_RPC_SEND_ERROR = {
      .error_name            = "OB_RPC_SEND_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 4012,
      .sqlstate              = "HY000",
      .str_error             = "RPC send error",
      .str_user_error        = "RPC send error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4121, RPC send error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4121, RPC send error"
};
static const _error _error_OB_RPC_POST_ERROR = {
      .error_name            = "OB_RPC_POST_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 4012,
      .sqlstate              = "HY000",
      .str_error             = "RPC post error",
      .str_user_error        = "RPC post error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4122, RPC post error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4122, RPC post error"
};
static const _error _error_OB_LIBEASY_ERROR = {
      .error_name            = "OB_LIBEASY_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "08000",
      .str_error             = "Libeasy error",
      .str_user_error        = "Libeasy error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4123, Libeasy error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4123, Libeasy error"
};
static const _error _error_OB_CONNECT_ERROR = {
      .error_name            = "OB_CONNECT_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Connect error",
      .str_user_error        = "Connect error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4124, Connect error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4124, Connect error"
};
static const _error _error_OB_NOT_FREE = {
      .error_name            = "OB_NOT_FREE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Not free",
      .str_user_error        = "Not free",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4125, Not free",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4125, Not free"
};
static const _error _error_OB_INIT_SQL_CONTEXT_ERROR = {
      .error_name            = "OB_INIT_SQL_CONTEXT_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Init SQL context error",
      .str_user_error        = "Init SQL context error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4126, Init SQL context error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4126, Init SQL context error"
};
static const _error _error_OB_SKIP_INVALID_ROW = {
      .error_name            = "OB_SKIP_INVALID_ROW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Skip invalid row",
      .str_user_error        = "Skip invalid row",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4127, Skip invalid row",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4127, Skip invalid row"
};
static const _error _error_OB_RPC_PACKET_INVALID = {
      .error_name            = "OB_RPC_PACKET_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "RPC packet is invalid",
      .str_user_error        = "RPC packet is invalid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4128, RPC packet is invalid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4128, RPC packet is invalid"
};
static const _error _error_OB_NO_TABLET = {
      .error_name            = "OB_NO_TABLET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "No tablets",
      .str_user_error        = "No tablets",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4133, No tablets",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4133, No tablets"
};
static const _error _error_OB_SNAPSHOT_DISCARDED = {
      .error_name            = "OB_SNAPSHOT_DISCARDED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Request to read too old versioned data",
      .str_user_error        = "Request to read too old versioned data",
      .oracle_errno          = 1555,
      .oracle_str_error      = "ORA-01555: snapshot too old",
      .oracle_str_user_error = "ORA-01555: snapshot too old"
};
static const _error _error_OB_DATA_NOT_UPTODATE = {
      .error_name            = "OB_DATA_NOT_UPTODATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "State is stale",
      .str_user_error        = "State is stale",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4139, State is stale",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4139, State is stale"
};
static const _error _error_OB_ROW_MODIFIED = {
      .error_name            = "OB_ROW_MODIFIED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Row modified",
      .str_user_error        = "Row modified",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4142, Row modified",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4142, Row modified"
};
static const _error _error_OB_VERSION_NOT_MATCH = {
      .error_name            = "OB_VERSION_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Version not match",
      .str_user_error        = "Version not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4143, Version not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4143, Version not match"
};
static const _error _error_OB_BAD_ADDRESS = {
      .error_name            = "OB_BAD_ADDRESS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Bad address",
      .str_user_error        = "Bad address",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4144, Bad address",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4144, Bad address"
};
static const _error _error_OB_ENQUEUE_FAILED = {
      .error_name            = "OB_ENQUEUE_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Enqueue error",
      .str_user_error        = "Enqueue error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4146, Enqueue error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4146, Enqueue error"
};
static const _error _error_OB_INVALID_CONFIG = {
      .error_name            = "OB_INVALID_CONFIG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid config",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4147, Invalid config",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4147, %s"
};
static const _error _error_OB_STMT_EXPIRED = {
      .error_name            = "OB_STMT_EXPIRED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Expired statement",
      .str_user_error        = "Expired statement",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4149, Expired statement",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4149, Expired statement"
};
static const _error _error_OB_ERR_MIN_VALUE = {
      .error_name            = "OB_ERR_MIN_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Min value",
      .str_user_error        = "Min value",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4150, Min value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4150, Min value"
};
static const _error _error_OB_ERR_MAX_VALUE = {
      .error_name            = "OB_ERR_MAX_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Max value",
      .str_user_error        = "Max value",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4151, Max value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4151, Max value"
};
static const _error _error_OB_ERR_NULL_VALUE = {
      .error_name            = "OB_ERR_NULL_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Null value",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4152, Null value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4152, %s"
};
static const _error _error_OB_RESOURCE_OUT = {
      .error_name            = "OB_RESOURCE_OUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_OUT_OF_RESOURCES,
      .sqlstate              = "53000",
      .str_error             = "Out of resource",
      .str_user_error        = "Out of resource",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4153, Out of resource",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4153, Out of resource"
};
static const _error _error_OB_ERR_SQL_CLIENT = {
      .error_name            = "OB_ERR_SQL_CLIENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Internal SQL client error",
      .str_user_error        = "Internal SQL client error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4154, Internal SQL client error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4154, Internal SQL client error"
};
static const _error _error_OB_META_TABLE_WITHOUT_USE_TABLE = {
      .error_name            = "OB_META_TABLE_WITHOUT_USE_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Meta table without use table",
      .str_user_error        = "Meta table without use table",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4155, Meta table without use table",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4155, Meta table without use table"
};
static const _error _error_OB_DISCARD_PACKET = {
      .error_name            = "OB_DISCARD_PACKET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Discard packet",
      .str_user_error        = "Discard packet",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4156, Discard packet",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4156, Discard packet"
};
static const _error _error_OB_OPERATE_OVERFLOW = {
      .error_name            = "OB_OPERATE_OVERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DATA_OUT_OF_RANGE,
      .sqlstate              = "22003",
      .str_error             = "value is out of range",
      .str_user_error        = "%s value is out of range in '%s'",
      .oracle_errno          = 25137,
      .oracle_str_error      = "ORA-25137: Data value out of range",
      .oracle_str_user_error = "ORA-25137: Data value %s out of range in '%s'"
};
static const _error _error_OB_INVALID_DATE_FORMAT = {
      .error_name            = "OB_INVALID_DATE_FORMAT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRUNCATED_WRONG_VALUE,
      .sqlstate              = "22007",
      .str_error             = "Incorrect value",
      .str_user_error        = "%s=%d must between %d and %d",
      .oracle_errno          = 1821,
      .oracle_str_error      = "ORA-01821: date format not recognized",
      .oracle_str_user_error = "ORA-01821: date format not recognized, %s=%d must between %d and %d"
};
static const _error _error_OB_POOL_REGISTERED_FAILED = {
      .error_name            = "OB_POOL_REGISTERED_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "register pool failed",
      .str_user_error        = "register pool failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4159, register pool failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4159, register pool failed"
};
static const _error _error_OB_POOL_UNREGISTERED_FAILED = {
      .error_name            = "OB_POOL_UNREGISTERED_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unregister pool failed",
      .str_user_error        = "unregister pool failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4160, unregister pool failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4160, unregister pool failed"
};
static const _error _error_OB_INVALID_ARGUMENT_NUM = {
      .error_name            = "OB_INVALID_ARGUMENT_NUM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Invalid argument num",
      .str_user_error        = "Invalid argument num",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4161, Invalid argument num",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4161, Invalid argument num"
};
static const _error _error_OB_LEASE_NOT_ENOUGH = {
      .error_name            = "OB_LEASE_NOT_ENOUGH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "reserved lease not enough",
      .str_user_error        = "reserved lease not enough",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4162, reserved lease not enough",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4162, reserved lease not enough"
};
static const _error _error_OB_LEASE_NOT_MATCH = {
      .error_name            = "OB_LEASE_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ups lease not match with rs",
      .str_user_error        = "ups lease not match with rs",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4163, ups lease not match with rs",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4163, ups lease not match with rs"
};
static const _error _error_OB_UPS_SWITCH_NOT_HAPPEN = {
      .error_name            = "OB_UPS_SWITCH_NOT_HAPPEN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ups switch not happen",
      .str_user_error        = "ups switch not happen",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4164, ups switch not happen",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4164, ups switch not happen"
};
static const _error _error_OB_EMPTY_RESULT = {
      .error_name            = "OB_EMPTY_RESULT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Empty result",
      .str_user_error        = "Empty result",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4165, Empty result",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4165, Empty result"
};
static const _error _error_OB_CACHE_NOT_HIT = {
      .error_name            = "OB_CACHE_NOT_HIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Cache not hit",
      .str_user_error        = "Cache not hit",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4166, Cache not hit",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4166, Cache not hit"
};
static const _error _error_OB_NESTED_LOOP_NOT_SUPPORT = {
      .error_name            = "OB_NESTED_LOOP_NOT_SUPPORT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Nested loop not support",
      .str_user_error        = "Nested loop not support",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4167, Nested loop not support",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4167, Nested loop not support"
};
static const _error _error_OB_LOG_INVALID_MOD_ID = {
      .error_name            = "OB_LOG_INVALID_MOD_ID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid log module id",
      .str_user_error        = "Invalid log module id",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4168, Invalid log module id",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4168, Invalid log module id"
};
static const _error _error_OB_LOG_MODULE_UNKNOWN = {
      .error_name            = "OB_LOG_MODULE_UNKNOWN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Unknown module name",
      .str_user_error        = "Unknown module name. Invalid Setting:'%.*s'. Syntax:parMod.subMod:level, parMod.subMod:level",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4169, Unknown module name",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4169, Unknown module name. Invalid Setting:'%.*s'. Syntax:parMod.subMod:level, parMod.subMod:level"
};
static const _error _error_OB_LOG_LEVEL_INVALID = {
      .error_name            = "OB_LOG_LEVEL_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid level",
      .str_user_error        = "Invalid level. Invalid setting:'%.*s'. Syntax:parMod.subMod:level, parMod.subMod:level",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4170, Invalid level",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4170, Invalid level. Invalid setting:'%.*s'. Syntax:parMod.subMod:level, parMod.subMod:level"
};
static const _error _error_OB_LOG_PARSER_SYNTAX_ERR = {
      .error_name            = "OB_LOG_PARSER_SYNTAX_ERR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Syntax to set log_level error",
      .str_user_error        = "Syntax to set log_level error. Invalid setting:'%.*s'. Syntax:parMod.subMod:level, parMod.subMod:level",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4171, Syntax to set log_level error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4171, Syntax to set log_level error. Invalid setting:'%.*s'. Syntax:parMod.subMod:level, parMod.subMod:level"
};
static const _error _error_OB_INDEX_OUT_OF_RANGE = {
      .error_name            = "OB_INDEX_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Index out of range",
      .str_user_error        = "Index out of range",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4172, Index out of range",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4172, Index out of range"
};
static const _error _error_OB_INT_UNDERFLOW = {
      .error_name            = "OB_INT_UNDERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Int underflow",
      .str_user_error        = "Int underflow",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4173, Int underflow",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4173, Int underflow"
};
static const _error _error_OB_UNKNOWN_CONNECTION = {
      .error_name            = "OB_UNKNOWN_CONNECTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NO_SUCH_THREAD,
      .sqlstate              = "HY000",
      .str_error             = "Unknown thread id",
      .str_user_error        = "Unknown thread id: %lu",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4174, Unknown thread id",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4174, Unknown thread id: %lu"
};
static const _error _error_OB_ERROR_OUT_OF_RANGE = {
      .error_name            = "OB_ERROR_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Out of range",
      .str_user_error        = "Out of range",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4175, Out of range",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4175, Out of range"
};
static const _error _error_OB_CACHE_SHRINK_FAILED = {
      .error_name            = "OB_CACHE_SHRINK_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY001",
      .str_error             = "shrink cache failed, no available cache",
      .str_user_error        = "shrink cache failed, no available cache",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4176, shrink cache failed, no available cache",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4176, shrink cache failed, no available cache"
};
static const _error _error_OB_OLD_SCHEMA_VERSION = {
      .error_name            = "OB_OLD_SCHEMA_VERSION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Schema version too old",
      .str_user_error        = "Schema version too old",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4177, Schema version too old",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4177, Schema version too old"
};
static const _error _error_OB_RELEASE_SCHEMA_ERROR = {
      .error_name            = "OB_RELEASE_SCHEMA_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Release schema error",
      .str_user_error        = "Release schema error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4178, Release schema error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4178, Release schema error"
};
static const _error _error_OB_OP_NOT_ALLOW = {
      .error_name            = "OB_OP_NOT_ALLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Operation not allowed now",
      .str_user_error        = "%s not allowed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4179, Operation not allowed now",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4179, %s not allowed"
};
static const _error _error_OB_NO_EMPTY_ENTRY = {
      .error_name            = "OB_NO_EMPTY_ENTRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "No empty entry",
      .str_user_error        = "No empty entry",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4180, No empty entry",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4180, No empty entry"
};
static const _error _error_OB_ERR_ALREADY_EXISTS = {
      .error_name            = "OB_ERR_ALREADY_EXISTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42S01",
      .str_error             = "Already exist",
      .str_user_error        = "Already exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4181, Already exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4181, Already exist"
};
static const _error _error_OB_SEARCH_NOT_FOUND = {
      .error_name            = "OB_SEARCH_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Value not found",
      .str_user_error        = "Value not found",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4182, Value not found",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4182, Value not found"
};
static const _error _error_OB_BEYOND_THE_RANGE = {
      .error_name            = "OB_BEYOND_THE_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Key out of range",
      .str_user_error        = "Key out of range",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4183, Key out of range",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4183, Key out of range"
};
static const _error _error_OB_SERVER_OUTOF_DISK_SPACE = {
      .error_name            = "OB_SERVER_OUTOF_DISK_SPACE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "53100",
      .str_error             = "Server out of disk space",
      .str_user_error        = "Server out of disk space",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4184, Server out of disk space",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4184, Server out of disk space"
};
static const _error _error_OB_COLUMN_GROUP_NOT_FOUND = {
      .error_name            = "OB_COLUMN_GROUP_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Column group \'%.*s\' not found",
      .str_user_error        = "Column group \'%.*s\' not found",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4185, Column group \'%.*s\' not found",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4185, Column group \'%.*s\' not found"
};
static const _error _error_OB_CS_COMPRESS_LIB_ERROR = {
      .error_name            = "OB_CS_COMPRESS_LIB_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Server failed to get compress library",
      .str_user_error        = "Server failed to get compress library",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4186, Server failed to get compress library",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4186, Server failed to get compress library"
};
static const _error _error_OB_ITEM_NOT_MATCH = {
      .error_name            = "OB_ITEM_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Item not match",
      .str_user_error        = "Item not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4187, Item not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4187, Item not match"
};
static const _error _error_OB_SCHEDULER_TASK_CNT_MISMATCH = {
      .error_name            = "OB_SCHEDULER_TASK_CNT_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Running task cnt and unfinished task cnt not consistent",
      .str_user_error        = "Running task cnt and unfinished task cnt not consistent",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4188, Running task cnt and unfinished task cnt not consistent",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4188, Running task cnt and unfinished task cnt not consistent"
};
static const _error _error_OB_INVALID_MACRO_BLOCK_TYPE = {
      .error_name            = "OB_INVALID_MACRO_BLOCK_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the macro block type does not exist",
      .str_user_error        = "the macro block type does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4189, the macro block type does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4189, the macro block type does not exist"
};
static const _error _error_OB_INVALID_DATE_FORMAT_END = {
      .error_name            = "OB_INVALID_DATE_FORMAT_END",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRUNCATED_WRONG_VALUE,
      .sqlstate              = "22007",
      .str_error             = "Incorrect value",
      .str_user_error        = "Incorrect value",
      .oracle_errno          = 1830,
      .oracle_str_error      = "ORA-01830: date format picture ends before converting entire input string",
      .oracle_str_user_error = "ORA-01830: date format picture ends before converting entire input string"
};
static const _error _error_OB_PG_IS_REMOVED = {
      .error_name            = "OB_PG_IS_REMOVED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "partition group is removed",
      .str_user_error        = "partition group is removed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4191, partition group is removed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4191, partition group is removed"
};
static const _error _error_OB_DDL_TASK_EXECUTE_TOO_MUCH_TIME = {
      .error_name            = "OB_DDL_TASK_EXECUTE_TOO_MUCH_TIME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "ddl task executes too much time",
      .str_user_error        = "ddl task executes too much time",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4192, ddl task executes too much time",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4192, ddl task executes too much time"
};
static const _error _error_OB_HASH_EXIST = {
      .error_name            = "OB_HASH_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "hash map/set entry exist",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4200, hash map/set entry exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4200, %s"
};
static const _error _error_OB_HASH_NOT_EXIST = {
      .error_name            = "OB_HASH_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "hash map/set entry not exist",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4201, hash map/set entry not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4201, %s"
};
static const _error _error_OB_HASH_GET_TIMEOUT = {
      .error_name            = "OB_HASH_GET_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "hash map/set get timeout",
      .str_user_error        = "hash map/set get timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4204, hash map/set get timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4204, hash map/set get timeout"
};
static const _error _error_OB_HASH_PLACEMENT_RETRY = {
      .error_name            = "OB_HASH_PLACEMENT_RETRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "hash map/set retry",
      .str_user_error        = "hash map/set retry",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4205, hash map/set retry",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4205, hash map/set retry"
};
static const _error _error_OB_HASH_FULL = {
      .error_name            = "OB_HASH_FULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "hash map/set full",
      .str_user_error        = "hash map/set full",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4206, hash map/set full",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4206, hash map/set full"
};
static const _error _error_OB_PACKET_PROCESSED = {
      .error_name            = "OB_PACKET_PROCESSED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "packet processed",
      .str_user_error        = "packet processed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4207, packet processed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4207, packet processed"
};
static const _error _error_OB_WAIT_NEXT_TIMEOUT = {
      .error_name            = "OB_WAIT_NEXT_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "wait next packet timeout",
      .str_user_error        = "wait next packet timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4208, wait next packet timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4208, wait next packet timeout"
};
static const _error _error_OB_LEADER_NOT_EXIST = {
      .error_name            = "OB_LEADER_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "partition has not leader",
      .str_user_error        = "partition has not leader",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4209, partition has not leader",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4209, partition has not leader"
};
static const _error _error_OB_PREPARE_MAJOR_FREEZE_FAILED = {
      .error_name            = "OB_PREPARE_MAJOR_FREEZE_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "prepare major freeze failed",
      .str_user_error        = "prepare major freeze failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4210, prepare major freeze failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4210, prepare major freeze failed"
};
static const _error _error_OB_COMMIT_MAJOR_FREEZE_FAILED = {
      .error_name            = "OB_COMMIT_MAJOR_FREEZE_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "commit major freeze failed",
      .str_user_error        = "commit major freeze failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4211, commit major freeze failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4211, commit major freeze failed"
};
static const _error _error_OB_ABORT_MAJOR_FREEZE_FAILED = {
      .error_name            = "OB_ABORT_MAJOR_FREEZE_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "abort major freeze failed",
      .str_user_error        = "abort major freeze failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4212, abort major freeze failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4212, abort major freeze failed"
};
static const _error _error_OB_MAJOR_FREEZE_NOT_FINISHED = {
      .error_name            = "OB_MAJOR_FREEZE_NOT_FINISHED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "last major freeze not finish",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4213, last major freeze not finish",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4213, %s"
};
static const _error _error_OB_PARTITION_NOT_LEADER = {
      .error_name            = "OB_PARTITION_NOT_LEADER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "partition is not leader partition",
      .str_user_error        = "partition is not leader partition",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4214, partition is not leader partition",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4214, partition is not leader partition"
};
static const _error _error_OB_WAIT_MAJOR_FREEZE_RESPONSE_TIMEOUT = {
      .error_name            = "OB_WAIT_MAJOR_FREEZE_RESPONSE_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "wait major freeze response timeout",
      .str_user_error        = "wait major freeze response timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4215, wait major freeze response timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4215, wait major freeze response timeout"
};
static const _error _error_OB_CURL_ERROR = {
      .error_name            = "OB_CURL_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "curl error",
      .str_user_error        = "curl error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4216, curl error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4216, curl error"
};
static const _error _error_OB_MAJOR_FREEZE_NOT_ALLOW = {
      .error_name            = "OB_MAJOR_FREEZE_NOT_ALLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Major freeze not allowed now",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4217, Major freeze not allowed now",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4217, %s"
};
static const _error _error_OB_PREPARE_FREEZE_FAILED = {
      .error_name            = "OB_PREPARE_FREEZE_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "prepare freeze failed",
      .str_user_error        = "prepare freeze failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4218, prepare freeze failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4218, prepare freeze failed"
};
static const _error _error_OB_INVALID_DATE_VALUE = {
      .error_name            = "OB_INVALID_DATE_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRUNCATED_WRONG_VALUE,
      .sqlstate              = "22007",
      .str_error             = "Incorrect value",
      .str_user_error        = "Incorrect datetime value: '%.*s' for column '%s'",
      .oracle_errno          = 1861,
      .oracle_str_error      = "ORA-01861: literal does not match format string",
      .oracle_str_user_error = "ORA-01861: literal does not match format string: '%.*s' for column '%s'"
};
static const _error _error_OB_INACTIVE_SQL_CLIENT = {
      .error_name            = "OB_INACTIVE_SQL_CLIENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Inactive sql client, only read allowed",
      .str_user_error        = "Inactive sql client, only read allowed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4220, Inactive sql client, only read allowed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4220, Inactive sql client, only read allowed"
};
static const _error _error_OB_INACTIVE_RPC_PROXY = {
      .error_name            = "OB_INACTIVE_RPC_PROXY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Inactive rpc proxy, can not send RPC request",
      .str_user_error        = "Inactive rpc proxy, can not send RPC request",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4221, Inactive rpc proxy, can not send RPC request",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4221, Inactive rpc proxy, can not send RPC request"
};
static const _error _error_OB_INTERVAL_WITH_MONTH = {
      .error_name            = "OB_INTERVAL_WITH_MONTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Interval with year or month can not be converted to microseconds",
      .str_user_error        = "Interval with year or month can not be converted to microseconds",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4222, Interval with year or month can not be converted to microseconds",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4222, Interval with year or month can not be converted to microseconds"
};
static const _error _error_OB_TOO_MANY_DATETIME_PARTS = {
      .error_name            = "OB_TOO_MANY_DATETIME_PARTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Interval has too many datetime parts",
      .str_user_error        = "Interval has too many datetime parts",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4223, Interval has too many datetime parts",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4223, Interval has too many datetime parts"
};
static const _error _error_OB_DATA_OUT_OF_RANGE = {
      .error_name            = "OB_DATA_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_DATA_OUT_OF_RANGE,
      .sqlstate              = "22003",
      .str_error             = "Out of range value for column",
      .str_user_error        = "Out of range value for column '%.*s' at row %ld",
      .oracle_errno          = 1438,
      .oracle_str_error      = "ORA-01438: value larger than specified precision allowed for this column",
      .oracle_str_user_error = "ORA-01438: value larger than specified precision allowed for this column '%.*s' at row %ld"
};
static const _error _error_OB_PARTITION_NOT_EXIST = {
      .error_name            = "OB_PARTITION_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Partition entry not exists",
      .str_user_error        = "Partition entry not exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4225, Partition entry not exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4225, Partition entry not exists"
};
static const _error _error_OB_ERR_TRUNCATED_WRONG_VALUE_FOR_FIELD = {
      .error_name            = "OB_ERR_TRUNCATED_WRONG_VALUE_FOR_FIELD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRUNCATED_WRONG_VALUE_FOR_FIELD,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect integer value",
      .str_user_error        = "Incorrect integer value for column '%.*s' at row %ld",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4226, Incorrect integer value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4226, Incorrect integer value for column '%.*s' at row %ld"
};
static const _error _error_OB_ERR_NO_DEFAULT_FOR_FIELD = {
      .error_name            = "OB_ERR_NO_DEFAULT_FOR_FIELD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NO_DEFAULT_FOR_FIELD,
      .sqlstate              = "HY000",
      .str_error             = "Field doesn\'t have a default value",
      .str_user_error        = "Field \'%s\' doesn't have a default value",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4227, Field doesn\'t have a default value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4227, Field \'%s\' doesn't have a default value"
};
static const _error _error_OB_ERR_FIELD_SPECIFIED_TWICE = {
      .error_name            = "OB_ERR_FIELD_SPECIFIED_TWICE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_FIELD_SPECIFIED_TWICE,
      .sqlstate              = "42000",
      .str_error             = "Column specified twice",
      .str_user_error        = "Column \'%s\' specified twice",
      .oracle_errno          = 957,
      .oracle_str_error      = "ORA-00957: duplicate column name",
      .oracle_str_user_error = "ORA-00957: duplicate column name \'%s\'"
};
static const _error _error_OB_ERR_TOO_LONG_TABLE_COMMENT = {
      .error_name            = "OB_ERR_TOO_LONG_TABLE_COMMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_LONG_TABLE_COMMENT,
      .sqlstate              = "HY000",
      .str_error             = "Comment for table is too long",
      .str_user_error        = "Comment for table is too long (max = %ld)",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4229, Comment for table is too long",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4229, Comment for table is too long (max = %ld)"
};
static const _error _error_OB_ERR_TOO_LONG_FIELD_COMMENT = {
      .error_name            = "OB_ERR_TOO_LONG_FIELD_COMMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_LONG_FIELD_COMMENT,
      .sqlstate              = "HY000",
      .str_error             = "Comment for field is too long",
      .str_user_error        = "Comment for field is too long (max = %ld)",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4230, Comment for field is too long",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4230, Comment for field is too long (max = %ld)"
};
static const _error _error_OB_ERR_TOO_LONG_INDEX_COMMENT = {
      .error_name            = "OB_ERR_TOO_LONG_INDEX_COMMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_LONG_INDEX_COMMENT,
      .sqlstate              = "HY000",
      .str_error             = "Comment for index is too long",
      .str_user_error        = "Comment for index is too long (max = %ld)",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4231, Comment for index is too long",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4231, Comment for index is too long (max = %ld)"
};
static const _error _error_OB_NOT_FOLLOWER = {
      .error_name            = "OB_NOT_FOLLOWER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The observer or zone is not a follower",
      .str_user_error        = "The observer or zone is not a follower",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4232, The observer or zone is not a follower",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4232, The observer or zone is not a follower"
};
static const _error _error_OB_ERR_OUT_OF_LOWER_BOUND = {
      .error_name            = "OB_ERR_OUT_OF_LOWER_BOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "smaller than container lower bound",
      .str_user_error        = "smaller than container lower bound",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4233, smaller than container lower bound",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4233, smaller than container lower bound"
};
static const _error _error_OB_ERR_OUT_OF_UPPER_BOUND = {
      .error_name            = "OB_ERR_OUT_OF_UPPER_BOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "bigger than container upper bound",
      .str_user_error        = "bigger than container upper bound",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4234, bigger than container upper bound",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4234, bigger than container upper bound"
};
static const _error _error_OB_BAD_NULL_ERROR = {
      .error_name            = "OB_BAD_NULL_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_BAD_NULL_ERROR,
      .sqlstate              = "23000",
      .str_error             = "Column cannot be null",
      .str_user_error        = "Column '%.*s' cannot be null",
      .oracle_errno          = 1400,
      .oracle_str_error      = "ORA-01400: cannot insert NULL",
      .oracle_str_user_error = "ORA-01400: cannot insert NULL into '(%.*s)'"
};
static const _error _error_OB_OBCONFIG_RETURN_ERROR = {
      .error_name            = "OB_OBCONFIG_RETURN_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ObConfig return error code",
      .str_user_error        = "ObConfig return error code",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4236, ObConfig return error code",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4236, ObConfig return error code"
};
static const _error _error_OB_OBCONFIG_APPNAME_MISMATCH = {
      .error_name            = "OB_OBCONFIG_APPNAME_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Appname mismatch with obconfig result",
      .str_user_error        = "Appname mismatch with obconfig result",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4237, Appname mismatch with obconfig result",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4237, Appname mismatch with obconfig result"
};
static const _error _error_OB_ERR_VIEW_SELECT_DERIVED = {
      .error_name            = "OB_ERR_VIEW_SELECT_DERIVED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_VIEW_SELECT_DERIVED,
      .sqlstate              = "HY000",
      .str_error             = "View's SELECT contains a subquery in the FROM clause",
      .str_user_error        = "View's SELECT contains a subquery in the FROM clause",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4238, View's SELECT contains a subquery in the FROM clause",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4238, View's SELECT contains a subquery in the FROM clause"
};
static const _error _error_OB_CANT_MJ_PATH = {
      .error_name            = "OB_CANT_MJ_PATH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Can not use merge-join to join the tables without join conditions",
      .str_user_error        = "Can not use merge-join to join the tables without join conditions",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4239, Can not use merge-join to join the tables without join conditions",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4239, Can not use merge-join to join the tables without join conditions"
};
static const _error _error_OB_ERR_NO_JOIN_ORDER_GENERATED = {
      .error_name            = "OB_ERR_NO_JOIN_ORDER_GENERATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "No join order generated",
      .str_user_error        = "No join order generated",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4240, No join order generated",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4240, No join order generated"
};
static const _error _error_OB_ERR_NO_PATH_GENERATED = {
      .error_name            = "OB_ERR_NO_PATH_GENERATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "No join path generated",
      .str_user_error        = "No join path generated",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4241, No join path generated",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4241, No join path generated"
};
static const _error _error_OB_ERR_WAIT_REMOTE_SCHEMA_REFRESH = {
      .error_name            = "OB_ERR_WAIT_REMOTE_SCHEMA_REFRESH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Schema error",
      .str_user_error        = "Schema error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4242, Schema error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4242, Schema error"
};
static const _error _error_OB_FILE_NOT_OPENED = {
      .error_name            = "OB_FILE_NOT_OPENED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "file not opened",
      .str_user_error        = "file not opened",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4243, file not opened",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4243, file not opened"
};
static const _error _error_OB_TIMER_TASK_HAS_SCHEDULED = {
      .error_name            = "OB_TIMER_TASK_HAS_SCHEDULED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Timer task has been scheduled",
      .str_user_error        = "Timer task has been scheduled",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4244, Timer task has been scheduled",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4244, Timer task has been scheduled"
};
static const _error _error_OB_TIMER_TASK_HAS_NOT_SCHEDULED = {
      .error_name            = "OB_TIMER_TASK_HAS_NOT_SCHEDULED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Timer task has not been scheduled",
      .str_user_error        = "Timer task has not been scheduled",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4245, Timer task has not been scheduled",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4245, Timer task has not been scheduled"
};
static const _error _error_OB_PARSE_DEBUG_SYNC_ERROR = {
      .error_name            = "OB_PARSE_DEBUG_SYNC_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "parse debug sync string error",
      .str_user_error        = "parse debug sync string error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4246, parse debug sync string error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4246, parse debug sync string error"
};
static const _error _error_OB_UNKNOWN_DEBUG_SYNC_POINT = {
      .error_name            = "OB_UNKNOWN_DEBUG_SYNC_POINT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unknown debug sync point",
      .str_user_error        = "unknown debug sync point",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4247, unknown debug sync point",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4247, unknown debug sync point"
};
static const _error _error_OB_ERR_INTERRUPTED = {
      .error_name            = "OB_ERR_INTERRUPTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "task is interrupted while running",
      .str_user_error        = "task is interrupted while running",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4248, task is interrupted while running",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4248, task is interrupted while running"
};
static const _error _error_OB_ERR_DATA_TRUNCATED = {
      .error_name            = "OB_ERR_DATA_TRUNCATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = WARN_DATA_TRUNCATED,
      .sqlstate              = "01000",
      .str_error             = "Data truncated for argument",
      .str_user_error        = "Data truncated for column '%.*s' at row %ld",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4249, Data truncated for argument",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4249, Data truncated for column '%.*s' at row %ld"
};
static const _error _error_OB_NOT_RUNNING = {
      .error_name            = "OB_NOT_RUNNING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "module is not running",
      .str_user_error        = "module is not running",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4250, module is not running",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4250, module is not running"
};
static const _error _error_OB_INVALID_PARTITION = {
      .error_name            = "OB_INVALID_PARTITION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "partition not valid",
      .str_user_error        = "partition not valid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4251, partition not valid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4251, partition not valid"
};
static const _error _error_OB_ERR_TIMEOUT_TRUNCATED = {
      .error_name            = "OB_ERR_TIMEOUT_TRUNCATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = WARN_DATA_TRUNCATED,
      .sqlstate              = "01000",
      .str_error             = "Timeout value truncated to 102 years",
      .str_user_error        = "Timeout value truncated to 102 years",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4252, Timeout value truncated to 102 years",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4252, Timeout value truncated to 102 years"
};
static const _error _error_OB_ERR_TOO_LONG_TENANT_COMMENT = {
      .error_name            = "OB_ERR_TOO_LONG_TENANT_COMMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Comment for tenant is too long",
      .str_user_error        = "Comment for tenant is too long (max = %ld)",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4253, Comment for tenant is too long",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4253, Comment for tenant is too long (max = %ld)"
};
static const _error _error_OB_ERR_NET_PACKET_TOO_LARGE = {
      .error_name            = "OB_ERR_NET_PACKET_TOO_LARGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NET_PACKET_TOO_LARGE,
      .sqlstate              = "08S01",
      .str_error             = "Got a packet bigger than \'max_allowed_packet\' bytes",
      .str_user_error        = "Got a packet bigger than \'max_allowed_packet\' bytes",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4254, Got a packet bigger than \'max_allowed_packet\' bytes",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4254, Got a packet bigger than \'max_allowed_packet\' bytes"
};
static const _error _error_OB_TRACE_DESC_NOT_EXIST = {
      .error_name            = "OB_TRACE_DESC_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "trace log title or key not exist describe",
      .str_user_error        = "trace log title or key not exist describe",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4255, trace log title or key not exist describe",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4255, trace log title or key not exist describe"
};
static const _error _error_OB_ERR_NO_DEFAULT = {
      .error_name            = "OB_ERR_NO_DEFAULT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NO_DEFAULT,
      .sqlstate              = "42000",
      .str_error             = "Variable doesn't have a default value",
      .str_user_error        = "Variable '%.*s' doesn't have a default value",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4256, Variable doesn't have a default value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4256, Variable '%.*s' doesn't have a default value"
};
static const _error _error_OB_ERR_COMPRESS_DECOMPRESS_DATA = {
      .error_name            = "OB_ERR_COMPRESS_DECOMPRESS_DATA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "compress data or decompress data failed",
      .str_user_error        = "compress data or decompress data failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4257, compress data or decompress data failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4257, compress data or decompress data failed"
};
static const _error _error_OB_ERR_INCORRECT_STRING_VALUE = {
      .error_name            = "OB_ERR_INCORRECT_STRING_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRUNCATED_WRONG_VALUE_FOR_FIELD,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect string value",
      .str_user_error        = "Incorrect string value for column '%.*s' at row %ld",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4258, Incorrect string value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4258, Incorrect string value for column '%.*s' at row %ld"
};
static const _error _error_OB_IS_CHANGING_LEADER = {
      .error_name            = "OB_IS_CHANGING_LEADER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the partition is changing leader",
      .str_user_error        = "the partition is changing leader",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4260, the partition is changing leader",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4260, the partition is changing leader"
};
static const _error _error_OB_DATETIME_FUNCTION_OVERFLOW = {
      .error_name            = "OB_DATETIME_FUNCTION_OVERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DATETIME_FUNCTION_OVERFLOW,
      .sqlstate              = "22008",
      .str_error             = "Datetime overflow",
      .str_user_error        = "Datetime overflow",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4261, Datetime overflow",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4261, Datetime overflow"
};
static const _error _error_OB_ERR_DOUBLE_TRUNCATED = {
      .error_name            = "OB_ERR_DOUBLE_TRUNCATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRUNCATED_WRONG_VALUE,
      .sqlstate              = "01000",
      .str_error             = "Truncated incorrect DOUBLE value",
      .str_user_error        = "Truncated incorrect DOUBLE value: '%.*s'",
      .oracle_errno          = 1722,
      .oracle_str_error      = "ORA-01722: invalid number",
      .oracle_str_user_error = "ORA-01722: invalid number: '%.*s'"
};
static const _error _error_OB_MINOR_FREEZE_NOT_ALLOW = {
      .error_name            = "OB_MINOR_FREEZE_NOT_ALLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Minor freeze not allowed now",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4263, Minor freeze not allowed now",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4263, %s"
};
static const _error _error_OB_LOG_OUTOF_DISK_SPACE = {
      .error_name            = "OB_LOG_OUTOF_DISK_SPACE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Log out of disk space",
      .str_user_error        = "Log out of disk space",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4264, Log out of disk space",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4264, Log out of disk space"
};
static const _error _error_OB_RPC_CONNECT_ERROR = {
      .error_name            = "OB_RPC_CONNECT_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Rpc connect error",
      .str_user_error        = "Rpc connect error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4265, Rpc connect error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4265, Rpc connect error"
};
static const _error _error_OB_MINOR_MERGE_NOT_ALLOW = {
      .error_name            = "OB_MINOR_MERGE_NOT_ALLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "minor merge not allow",
      .str_user_error        = "minor merge not allow",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4266, minor merge not allow",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4266, minor merge not allow"
};
static const _error _error_OB_CACHE_INVALID = {
      .error_name            = "OB_CACHE_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Cache invalid",
      .str_user_error        = "Cache invalid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4267, Cache invalid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4267, Cache invalid"
};
static const _error _error_OB_REACH_SERVER_DATA_COPY_IN_CONCURRENCY_LIMIT = {
      .error_name            = "OB_REACH_SERVER_DATA_COPY_IN_CONCURRENCY_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "reach server data copy in concurrency",
      .str_user_error        = "reach server data copy in concurrency",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4268, reach server data copy in concurrency",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4268, reach server data copy in concurrency"
};
static const _error _error_OB_WORKING_PARTITION_EXIST = {
      .error_name            = "OB_WORKING_PARTITION_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Working partition entry already exists",
      .str_user_error        = "Working partition entry already exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4269, Working partition entry already exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4269, Working partition entry already exists"
};
static const _error _error_OB_WORKING_PARTITION_NOT_EXIST = {
      .error_name            = "OB_WORKING_PARTITION_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Working partition entry does not exists",
      .str_user_error        = "Working partition entry does not exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4270, Working partition entry does not exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4270, Working partition entry does not exists"
};
static const _error _error_OB_LIBEASY_REACH_MEM_LIMIT = {
      .error_name            = "OB_LIBEASY_REACH_MEM_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "LIBEASY reach memory limit",
      .str_user_error        = "LIBEASY reach memory limit",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4271, LIBEASY reach memory limit",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4271, LIBEASY reach memory limit"
};
static const _error _error_OB_CACHE_FREE_BLOCK_NOT_ENOUGH = {
      .error_name            = "OB_CACHE_FREE_BLOCK_NOT_ENOUGH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "free memblock in cache is not enough",
      .str_user_error        = "free memblock in cache is not enough",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4273, free memblock in cache is not enough",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4273, free memblock in cache is not enough"
};
static const _error _error_OB_SYNC_WASH_MB_TIMEOUT = {
      .error_name            = "OB_SYNC_WASH_MB_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "sync wash memblock timeout",
      .str_user_error        = "sync wash memblock timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4274, sync wash memblock timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4274, sync wash memblock timeout"
};
static const _error _error_OB_NOT_ALLOW_MIGRATE_IN = {
      .error_name            = "OB_NOT_ALLOW_MIGRATE_IN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not allow migrate in",
      .str_user_error        = "not allow migrate in",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4275, not allow migrate in",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4275, not allow migrate in"
};
static const _error _error_OB_SCHEDULER_TASK_CNT_MISTACH = {
      .error_name            = "OB_SCHEDULER_TASK_CNT_MISTACH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Scheduler task cnt does not match",
      .str_user_error        = "Scheduler task cnt does not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4276, Scheduler task cnt does not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4276, Scheduler task cnt does not match"
};
static const _error _error_OB_MISS_ARGUMENT = {
      .error_name            = "OB_MISS_ARGUMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_ARGUMENTS,
      .sqlstate              = "HY000",
      .str_error             = "Miss argument",
      .str_user_error        = "Miss argument for %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4277, Miss argument",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4277, Miss argument for %s"
};
static const _error _error_OB_LAST_LOG_NOT_COMPLETE = {
      .error_name            = "OB_LAST_LOG_NOT_COMPLETE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "last log is not complete",
      .str_user_error        = "last log is not complete",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4278, last log is not complete",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4278, last log is not complete"
};
static const _error _error_OB_TABLE_IS_DELETED = {
      .error_name            = "OB_TABLE_IS_DELETED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "table is deleted",
      .str_user_error        = "table is deleted",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4279, table is deleted",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4279, table is deleted"
};
static const _error _error_OB_VERSION_RANGE_NOT_CONTINUES = {
      .error_name            = "OB_VERSION_RANGE_NOT_CONTINUES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "version range not continues",
      .str_user_error        = "version range not continues",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4280, version range not continues",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4280, version range not continues"
};
static const _error _error_OB_INVALID_IO_BUFFER = {
      .error_name            = "OB_INVALID_IO_BUFFER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "io buffer is invalid",
      .str_user_error        = "io buffer is invalid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4281, io buffer is invalid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4281, io buffer is invalid"
};
static const _error _error_OB_PARTITION_IS_REMOVED = {
      .error_name            = "OB_PARTITION_IS_REMOVED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "partition is removed",
      .str_user_error        = "partition is removed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4282, partition is removed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4282, partition is removed"
};
static const _error _error_OB_GTS_NOT_READY = {
      .error_name            = "OB_GTS_NOT_READY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "gts is not ready",
      .str_user_error        = "gts is not ready",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4283, gts is not ready",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4283, gts is not ready"
};
static const _error _error_OB_MAJOR_SSTABLE_NOT_EXIST = {
      .error_name            = "OB_MAJOR_SSTABLE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "major sstable not exist",
      .str_user_error        = "major sstable not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4284, major sstable not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4284, major sstable not exist"
};
static const _error _error_OB_VERSION_RANGE_DISCARDED = {
      .error_name            = "OB_VERSION_RANGE_DISCARDED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Request to read too old version range data",
      .str_user_error        = "Request to read too old version range data",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4285, Request to read too old version range data",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4285, Request to read too old version range data"
};
static const _error _error_OB_MAJOR_SSTABLE_HAS_MERGED = {
      .error_name            = "OB_MAJOR_SSTABLE_HAS_MERGED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "major sstable may has been merged",
      .str_user_error        = "major sstable may has been merged",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4286, major sstable may has been merged",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4286, major sstable may has been merged"
};
static const _error _error_OB_MINOR_SSTABLE_RANGE_CROSS = {
      .error_name            = "OB_MINOR_SSTABLE_RANGE_CROSS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "minor sstable version range cross",
      .str_user_error        = "minor sstable version range cross",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4287, minor sstable version range cross",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4287, minor sstable version range cross"
};
static const _error _error_OB_MEMTABLE_CANNOT_MINOR_MERGE = {
      .error_name            = "OB_MEMTABLE_CANNOT_MINOR_MERGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "memtable cannot minor merge",
      .str_user_error        = "memtable cannot minor merge",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4288, memtable cannot minor merge",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4288, memtable cannot minor merge"
};
static const _error _error_OB_TASK_EXIST = {
      .error_name            = "OB_TASK_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "task exist",
      .str_user_error        = "task exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4289, task exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4289, task exist"
};
static const _error _error_OB_ALLOCATE_DISK_SPACE_FAILED = {
      .error_name            = "OB_ALLOCATE_DISK_SPACE_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot allocate disk space",
      .str_user_error        = "cannot allocate disk space",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4290, cannot allocate disk space",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4290, cannot allocate disk space"
};
static const _error _error_OB_CANT_FIND_UDF = {
      .error_name            = "OB_CANT_FIND_UDF",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_FIND_UDF,
      .sqlstate              = "HY000",
      .str_error             = "Can't load function",
      .str_user_error        = "Can not load function %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4291, Can't load function",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4291, Can not load function %s"
};
static const _error _error_OB_CANT_INITIALIZE_UDF = {
      .error_name            = "OB_CANT_INITIALIZE_UDF",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_INITIALIZE_UDF,
      .sqlstate              = "HY000",
      .str_error             = "Can't initialize function",
      .str_user_error        = "Can not initialize function '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4292, Can't initialize function",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4292, Can not initialize function '%.*s'"
};
static const _error _error_OB_UDF_NO_PATHS = {
      .error_name            = "OB_UDF_NO_PATHS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UDF_NO_PATHS,
      .sqlstate              = "HY000",
      .str_error             = "No paths allowed for shared library",
      .str_user_error        = "No paths allowed for shared library",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4293, No paths allowed for shared library",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4293, No paths allowed for shared library"
};
static const _error _error_OB_UDF_EXISTS = {
      .error_name            = "OB_UDF_EXISTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UDF_EXISTS,
      .sqlstate              = "HY000",
      .str_error             = "Function already exists",
      .str_user_error        = "Function %.*s already exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4294, Function already exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4294, Function %.*s already exists"
};
static const _error _error_OB_CANT_OPEN_LIBRARY = {
      .error_name            = "OB_CANT_OPEN_LIBRARY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_OPEN_LIBRARY,
      .sqlstate              = "HY000",
      .str_error             = "Can't open shared library",
      .str_user_error        = "Can not open shared library '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4295, Can't open shared library",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4295, Can not open shared library '%.*s'"
};
static const _error _error_OB_CANT_FIND_DL_ENTRY = {
      .error_name            = "OB_CANT_FIND_DL_ENTRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_FIND_DL_ENTRY,
      .sqlstate              = "HY000",
      .str_error             = "Can't find symbol",
      .str_user_error        = "Can't find symbol %.*s in library",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4296, Can't find symbol",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4296, Can't find symbol %.*s in library"
};
static const _error _error_OB_OBJECT_NAME_EXIST = {
      .error_name            = "OB_OBJECT_NAME_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "name is already used by an existing object",
      .str_user_error        = "name is already used by an existing object",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4297, name is already used by an existing object",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4297, name is already used by an existing object"
};
static const _error _error_OB_OBJECT_NAME_NOT_EXIST = {
      .error_name            = "OB_OBJECT_NAME_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 4298,
      .sqlstate              = "HY000",
      .str_error             = "object does not exist",
      .str_user_error        = "%s does not exist",
      .oracle_errno          = 2289,
      .oracle_str_error      = "ORA-02289: object does not exist",
      .oracle_str_user_error = "ORA-02289: %s does not exist"
};
static const _error _error_OB_ERR_DUP_ARGUMENT = {
      .error_name            = "OB_ERR_DUP_ARGUMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DUP_ARGUMENT,
      .sqlstate              = "HY000",
      .str_error             = "Option used twice in statement",
      .str_user_error        = "Option '%s' used twice in statement",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4299, Option used twice in statement",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4299, Option '%s' used twice in statement"
};
static const _error _error_OB_ERR_INVALID_SEQUENCE_NAME = {
      .error_name            = "OB_ERR_INVALID_SEQUENCE_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid sequence name",
      .str_user_error        = "invalid sequence name",
      .oracle_errno          = 2277,
      .oracle_str_error      = "ORA-02277: invalid sequence name",
      .oracle_str_user_error = "ORA-02277: invalid sequence name"
};
static const _error _error_OB_ERR_DUP_MAXVALUE_SPEC = {
      .error_name            = "OB_ERR_DUP_MAXVALUE_SPEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate MAXVALUE/NOMAXVALUE specifications",
      .str_user_error        = "duplicate MAXVALUE/NOMAXVALUE specifications",
      .oracle_errno          = 2278,
      .oracle_str_error      = "ORA-02278: duplicate MAXVALUE/NOMAXVALUE specifications",
      .oracle_str_user_error = "ORA-02278: duplicate MAXVALUE/NOMAXVALUE specifications"
};
static const _error _error_OB_ERR_DUP_MINVALUE_SPEC = {
      .error_name            = "OB_ERR_DUP_MINVALUE_SPEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate MINVALUE/NOMINVALUE specifications",
      .str_user_error        = "duplicate MINVALUE/NOMINVALUE specifications",
      .oracle_errno          = 2279,
      .oracle_str_error      = "ORA-02279: duplicate MINVALUE/NOMINVALUE specifications",
      .oracle_str_user_error = "ORA-02279: duplicate MINVALUE/NOMINVALUE specifications"
};
static const _error _error_OB_ERR_DUP_CYCLE_SPEC = {
      .error_name            = "OB_ERR_DUP_CYCLE_SPEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate CYCLE/NOCYCLE specifications",
      .str_user_error        = "duplicate CYCLE/NOCYCLE specifications",
      .oracle_errno          = 2280,
      .oracle_str_error      = "ORA-02280: duplicate CYCLE/NOCYCLE specifications",
      .oracle_str_user_error = "ORA-02280: duplicate CYCLE/NOCYCLE specifications"
};
static const _error _error_OB_ERR_DUP_CACHE_SPEC = {
      .error_name            = "OB_ERR_DUP_CACHE_SPEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate CACHE/NOCACHE specifications",
      .str_user_error        = "duplicate CACHE/NOCACHE specifications",
      .oracle_errno          = 2281,
      .oracle_str_error      = "ORA-02281: duplicate CACHE/NOCACHE specifications",
      .oracle_str_user_error = "ORA-02281: duplicate CACHE/NOCACHE specifications"
};
static const _error _error_OB_ERR_DUP_ORDER_SPEC = {
      .error_name            = "OB_ERR_DUP_ORDER_SPEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate ORDER/NOORDER specifications",
      .str_user_error        = "duplicate ORDER/NOORDER specifications",
      .oracle_errno          = 2282,
      .oracle_str_error      = "ORA-02282: duplicate ORDER/NOORDER specifications",
      .oracle_str_user_error = "ORA-02282: duplicate ORDER/NOORDER specifications"
};
static const _error _error_OB_ERR_CONFL_MAXVALUE_SPEC = {
      .error_name            = "OB_ERR_CONFL_MAXVALUE_SPEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "conflicting MAXVALUE/NOMAXVALUE specifications",
      .str_user_error        = "conflicting MAXVALUE/NOMAXVALUE specifications",
      .oracle_errno          = 2278,
      .oracle_str_error      = "ORA-02278: conflicting MAXVALUE/NOMAXVALUE specifications",
      .oracle_str_user_error = "ORA-02278: conflicting MAXVALUE/NOMAXVALUE specifications"
};
static const _error _error_OB_ERR_CONFL_MINVALUE_SPEC = {
      .error_name            = "OB_ERR_CONFL_MINVALUE_SPEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "conflicting MINVALUE/NOMINVALUE specifications",
      .str_user_error        = "conflicting MINVALUE/NOMINVALUE specifications",
      .oracle_errno          = 2279,
      .oracle_str_error      = "ORA-02279: conflicting MINVALUE/NOMINVALUE specifications",
      .oracle_str_user_error = "ORA-02279: conflicting MINVALUE/NOMINVALUE specifications"
};
static const _error _error_OB_ERR_CONFL_CYCLE_SPEC = {
      .error_name            = "OB_ERR_CONFL_CYCLE_SPEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "conflicting CYCLE/NOCYCLE specifications",
      .str_user_error        = "conflicting CYCLE/NOCYCLE specifications",
      .oracle_errno          = 2280,
      .oracle_str_error      = "ORA-02280: conflicting CYCLE/NOCYCLE specifications",
      .oracle_str_user_error = "ORA-02280: conflicting CYCLE/NOCYCLE specifications"
};
static const _error _error_OB_ERR_CONFL_CACHE_SPEC = {
      .error_name            = "OB_ERR_CONFL_CACHE_SPEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "conflicting CACHE/NOCACHE specifications",
      .str_user_error        = "conflicting CACHE/NOCACHE specifications",
      .oracle_errno          = 2281,
      .oracle_str_error      = "ORA-02281: conflicting CACHE/NOCACHE specifications",
      .oracle_str_user_error = "ORA-02281: conflicting CACHE/NOCACHE specifications"
};
static const _error _error_OB_ERR_CONFL_ORDER_SPEC = {
      .error_name            = "OB_ERR_CONFL_ORDER_SPEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "conflicting ORDER/NOORDER specifications",
      .str_user_error        = "conflicting ORDER/NOORDER specifications",
      .oracle_errno          = 2282,
      .oracle_str_error      = "ORA-02282: conflicting ORDER/NOORDER specifications",
      .oracle_str_user_error = "ORA-02282: conflicting ORDER/NOORDER specifications"
};
static const _error _error_OB_ERR_ALTER_START_SEQ_NUMBER_NOT_ALLOWED = {
      .error_name            = "OB_ERR_ALTER_START_SEQ_NUMBER_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot alter starting sequence number",
      .str_user_error        = "cannot alter starting sequence number",
      .oracle_errno          = 2283,
      .oracle_str_error      = "ORA-02283: cannot alter starting sequence number",
      .oracle_str_user_error = "ORA-02283: cannot alter starting sequence number"
};
static const _error _error_OB_ERR_DUP_INCREMENT_BY_SPEC = {
      .error_name            = "OB_ERR_DUP_INCREMENT_BY_SPEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate INCREMENT BY specifications",
      .str_user_error        = "duplicate INCREMENT BY specifications",
      .oracle_errno          = 2284,
      .oracle_str_error      = "ORA-02284: duplicate INCREMENT BY specifications",
      .oracle_str_user_error = "ORA-02284: duplicate INCREMENT BY specifications"
};
static const _error _error_OB_ERR_DUP_START_WITH_SPEC = {
      .error_name            = "OB_ERR_DUP_START_WITH_SPEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate START WITH specifications",
      .str_user_error        = "duplicate START WITH specifications",
      .oracle_errno          = 2285,
      .oracle_str_error      = "ORA-02285: duplicate START WITH specifications",
      .oracle_str_user_error = "ORA-02285: duplicate START WITH specifications"
};
static const _error _error_OB_ERR_REQUIRE_ALTER_SEQ_OPTION = {
      .error_name            = "OB_ERR_REQUIRE_ALTER_SEQ_OPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no options specified for ALTER SEQUENCE",
      .str_user_error        = "no options specified for ALTER SEQUENCE",
      .oracle_errno          = 2286,
      .oracle_str_error      = "ORA-02286: no options specified for ALTER SEQUENCE",
      .oracle_str_user_error = "ORA-02286: no options specified for ALTER SEQUENCE"
};
static const _error _error_OB_ERR_SEQ_NOT_ALLOWED_HERE = {
      .error_name            = "OB_ERR_SEQ_NOT_ALLOWED_HERE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "sequence number not allowed here",
      .str_user_error        = "sequence number not allowed here",
      .oracle_errno          = 2287,
      .oracle_str_error      = "ORA-02287: sequence number not allowed here",
      .oracle_str_user_error = "ORA-02287: sequence number not allowed here"
};
static const _error _error_OB_ERR_SEQ_NOT_EXIST = {
      .error_name            = "OB_ERR_SEQ_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "sequence does not exist",
      .str_user_error        = "sequence does not exist",
      .oracle_errno          = 2289,
      .oracle_str_error      = "ORA-02289: sequence does not exist",
      .oracle_str_user_error = "ORA-02289: sequence does not exist"
};
static const _error _error_OB_ERR_SEQ_OPTION_MUST_BE_INTEGER = {
      .error_name            = "OB_ERR_SEQ_OPTION_MUST_BE_INTEGER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "sequence parameter must be an integer",
      .str_user_error        = "sequence parameter %s must be an integer",
      .oracle_errno          = 4001,
      .oracle_str_error      = "ORA-04001: sequence parameter must be an integer",
      .oracle_str_user_error = "ORA-04001: sequence parameter %s must be an integer"
};
static const _error _error_OB_ERR_SEQ_INCREMENT_CAN_NOT_BE_ZERO = {
      .error_name            = "OB_ERR_SEQ_INCREMENT_CAN_NOT_BE_ZERO",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "INCREMENT must be a nonzero integer",
      .str_user_error        = "INCREMENT must be a nonzero integer",
      .oracle_errno          = 4002,
      .oracle_str_error      = "ORA-04002: INCREMENT must be a nonzero integer",
      .oracle_str_user_error = "ORA-04002: INCREMENT must be a nonzero integer"
};
static const _error _error_OB_ERR_SEQ_OPTION_EXCEED_RANGE = {
      .error_name            = "OB_ERR_SEQ_OPTION_EXCEED_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "sequence parameter exceeds maximum size allowed",
      .str_user_error        = "sequence parameter exceeds maximum size allowed",
      .oracle_errno          = 4003,
      .oracle_str_error      = "ORA-04003: sequence parameter exceeds maximum size allowed",
      .oracle_str_user_error = "ORA-04003: sequence parameter exceeds maximum size allowed"
};
static const _error _error_OB_ERR_MINVALUE_LARGER_THAN_MAXVALUE = {
      .error_name            = "OB_ERR_MINVALUE_LARGER_THAN_MAXVALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "MINVALUE must be less than MAXVALUE",
      .str_user_error        = "MINVALUE must be less than MAXVALUE",
      .oracle_errno          = 4004,
      .oracle_str_error      = "ORA-04004: MINVALUE must be less than MAXVALUE",
      .oracle_str_user_error = "ORA-04004: MINVALUE must be less than MAXVALUE"
};
static const _error _error_OB_ERR_SEQ_INCREMENT_TOO_LARGE = {
      .error_name            = "OB_ERR_SEQ_INCREMENT_TOO_LARGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "INCREMENT must be less than MAXVALUE minus MINVALUE",
      .str_user_error        = "INCREMENT must be less than MAXVALUE minus MINVALUE",
      .oracle_errno          = 4005,
      .oracle_str_error      = "ORA-04005: INCREMENT must be less than MAXVALUE minus MINVALUE",
      .oracle_str_user_error = "ORA-04005: INCREMENT must be less than MAXVALUE minus MINVALUE"
};
static const _error _error_OB_ERR_START_WITH_LESS_THAN_MINVALUE = {
      .error_name            = "OB_ERR_START_WITH_LESS_THAN_MINVALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "START WITH cannot be less than MINVALUE",
      .str_user_error        = "START WITH cannot be less than MINVALUE",
      .oracle_errno          = 4006,
      .oracle_str_error      = "ORA-04006: START WITH cannot be less than MINVALUE",
      .oracle_str_user_error = "ORA-04006: START WITH cannot be less than MINVALUE"
};
static const _error _error_OB_ERR_MINVALUE_EXCEED_CURRVAL = {
      .error_name            = "OB_ERR_MINVALUE_EXCEED_CURRVAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "MINVALUE cannot be made to exceed the current value",
      .str_user_error        = "MINVALUE cannot be made to exceed the current value",
      .oracle_errno          = 4007,
      .oracle_str_error      = "ORA-04007: MINVALUE cannot be made to exceed the current value",
      .oracle_str_user_error = "ORA-04007: MINVALUE cannot be made to exceed the current value"
};
static const _error _error_OB_ERR_START_WITH_EXCEED_MAXVALUE = {
      .error_name            = "OB_ERR_START_WITH_EXCEED_MAXVALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "START WITH cannot be more than MAXVALUE",
      .str_user_error        = "START WITH cannot be more than MAXVALUE",
      .oracle_errno          = 4008,
      .oracle_str_error      = "ORA-04008: START WITH cannot be more than MAXVALUE",
      .oracle_str_user_error = "ORA-04008: START WITH cannot be more than MAXVALUE"
};
static const _error _error_OB_ERR_MAXVALUE_EXCEED_CURRVAL = {
      .error_name            = "OB_ERR_MAXVALUE_EXCEED_CURRVAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "MAXVALUE cannot be made to be less than the current value",
      .str_user_error        = "MAXVALUE cannot be made to be less than the current value",
      .oracle_errno          = 4009,
      .oracle_str_error      = "ORA-04009: MAXVALUE cannot be made to be less than the current value",
      .oracle_str_user_error = "ORA-04009: MAXVALUE cannot be made to be less than the current value"
};
static const _error _error_OB_ERR_SEQ_CACHE_TOO_SMALL = {
      .error_name            = "OB_ERR_SEQ_CACHE_TOO_SMALL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the number of values to CACHE must be greater than 1",
      .str_user_error        = "the number of values to CACHE must be greater than 1",
      .oracle_errno          = 4010,
      .oracle_str_error      = "ORA-04010: the number of values to CACHE must be greater than 1",
      .oracle_str_user_error = "ORA-04010: the number of values to CACHE must be greater than 1"
};
static const _error _error_OB_ERR_SEQ_OPTION_OUT_OF_RANGE = {
      .error_name            = "OB_ERR_SEQ_OPTION_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "sequence option value out of range",
      .str_user_error        = "sequence option value out of range",
      .oracle_errno          = 4011,
      .oracle_str_error      = "ORA-04011: sequence option value out of range",
      .oracle_str_user_error = "ORA-04011: sequence option value out of range"
};
static const _error _error_OB_ERR_SEQ_CACHE_TOO_LARGE = {
      .error_name            = "OB_ERR_SEQ_CACHE_TOO_LARGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "number to CACHE must be less than one cycle",
      .str_user_error        = "number to CACHE must be less than one cycle",
      .oracle_errno          = 4013,
      .oracle_str_error      = "ORA-04013: number to CACHE must be less than one cycle",
      .oracle_str_user_error = "ORA-04013: number to CACHE must be less than one cycle"
};
static const _error _error_OB_ERR_SEQ_REQUIRE_MINVALUE = {
      .error_name            = "OB_ERR_SEQ_REQUIRE_MINVALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "descending sequences that CYCLE must specify MINVALUE",
      .str_user_error        = "descending sequences that CYCLE must specify MINVALUE",
      .oracle_errno          = 4014,
      .oracle_str_error      = "ORA-04014: descending sequences that CYCLE must specify MINVALUE",
      .oracle_str_user_error = "ORA-04014: descending sequences that CYCLE must specify MINVALUE"
};
static const _error _error_OB_ERR_SEQ_REQUIRE_MAXVALUE = {
      .error_name            = "OB_ERR_SEQ_REQUIRE_MAXVALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ascending sequences that CYCLE must specify MAXVALUE",
      .str_user_error        = "ascending sequences that CYCLE must specify MAXVALUE",
      .oracle_errno          = 4015,
      .oracle_str_error      = "ORA-04015: ascending sequences that CYCLE must specify MAXVALUE",
      .oracle_str_user_error = "ORA-04015: ascending sequences that CYCLE must specify MAXVALUE"
};
static const _error _error_OB_ERR_SEQ_NO_LONGER_EXIST = {
      .error_name            = "OB_ERR_SEQ_NO_LONGER_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "sequence no longer exists",
      .str_user_error        = "sequence %s no longer exists",
      .oracle_errno          = 4015,
      .oracle_str_error      = "ORA-04015: sequence no longer exists",
      .oracle_str_user_error = "ORA-04015: sequence %s no longer exists"
};
static const _error _error_OB_ERR_SEQ_VALUE_EXCEED_LIMIT = {
      .error_name            = "OB_ERR_SEQ_VALUE_EXCEED_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "sequence exceeds limit and cannot be instantiated",
      .str_user_error        = "sequence exceeds %s and cannot be instantiated",
      .oracle_errno          = 8004,
      .oracle_str_error      = "ORA-08004: sequence exceeds limit and cannot be instantiated",
      .oracle_str_user_error = "ORA-08004: sequence exceeds %s and cannot be instantiated"
};
static const _error _error_OB_ERR_DIVISOR_IS_ZERO = {
      .error_name            = "OB_ERR_DIVISOR_IS_ZERO",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "divisor is equal to zero",
      .str_user_error        = "divisor is equal to zero",
      .oracle_errno          = 1476,
      .oracle_str_error      = "ORA-01476: divisor is equal to zero",
      .oracle_str_user_error = "ORA-01476: divisor is equal to zero"
};
static const _error _error_OB_ERR_AES_DECRYPT = {
      .error_name            = "OB_ERR_AES_DECRYPT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "fail to decrypt data",
      .str_user_error        = "fail to decrypt data",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4334, fail to decrypt data",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4334, fail to decrypt data"
};
static const _error _error_OB_ERR_AES_ENCRYPT = {
      .error_name            = "OB_ERR_AES_ENCRYPT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "fail to encrypt data",
      .str_user_error        = "fail to encrypt data",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4335, fail to encrypt data",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4335, fail to encrypt data"
};
static const _error _error_OB_ERR_AES_IV_LENGTH = {
      .error_name            = "OB_ERR_AES_IV_LENGTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_AES_INVALID_IV,
      .sqlstate              = "HY000",
      .str_error             = "The initialization vector supplied to aes_encrypt is too short. Must be at least 16 bytes long",
      .str_user_error        = "The initialization vector supplied to aes_encrypt is too short. Must be at least 16 bytes long",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4336, The initialization vector supplied to aes_encrypt is too short. Must be at least 16 bytes long",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4336, The initialization vector supplied to aes_encrypt is too short. Must be at least 16 bytes long"
};
static const _error _error_OB_STORE_DIR_ERROR = {
      .error_name            = "OB_STORE_DIR_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "store directory structure error",
      .str_user_error        = "store directory structure error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4337, store directory structure error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4337, store directory structure error"
};
static const _error _error_OB_OPEN_TWICE = {
      .error_name            = "OB_OPEN_TWICE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "open twice",
      .str_user_error        = "open twice",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4338, open twice",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4338, open twice"
};
static const _error _error_OB_RAID_SUPER_BLOCK_NOT_MACTH = {
      .error_name            = "OB_RAID_SUPER_BLOCK_NOT_MACTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "raid super block not match",
      .str_user_error        = "raid super block not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4339, raid super block not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4339, raid super block not match"
};
static const _error _error_OB_NOT_OPEN = {
      .error_name            = "OB_NOT_OPEN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not opened",
      .str_user_error        = "not opened",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4340, not opened",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4340, not opened"
};
static const _error _error_OB_NOT_IN_SERVICE = {
      .error_name            = "OB_NOT_IN_SERVICE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "target module is not in service",
      .str_user_error        = "target module is not in service",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4341, target module is not in service",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4341, target module is not in service"
};
static const _error _error_OB_RAID_DISK_NOT_NORMAL = {
      .error_name            = "OB_RAID_DISK_NOT_NORMAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "raid disk not in normal status",
      .str_user_error        = "raid disk not in normal status",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4342, raid disk not in normal status",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4342, raid disk not in normal status"
};
static const _error _error_OB_TENANT_SCHEMA_NOT_FULL = {
      .error_name            = "OB_TENANT_SCHEMA_NOT_FULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "tenant schema is not full",
      .str_user_error        = "tenant schema is not full",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4343, tenant schema is not full",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4343, tenant schema is not full"
};
static const _error _error_OB_INVALID_QUERY_TIMESTAMP = {
      .error_name            = "OB_INVALID_QUERY_TIMESTAMP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid timestamp",
      .str_user_error        = "invalid timestamp",
      .oracle_errno          = 8186,
      .oracle_str_error      = "ORA-08186: invalid timestamp",
      .oracle_str_user_error = "ORA-08186: invalid timestamp"
};
static const _error _error_OB_DIR_NOT_EMPTY = {
      .error_name            = "OB_DIR_NOT_EMPTY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "dir not empty",
      .str_user_error        = "dir not empty",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4345, dir not empty",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4345, dir not empty"
};
static const _error _error_OB_SCHEMA_NOT_UPTODATE = {
      .error_name            = "OB_SCHEMA_NOT_UPTODATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "schema is not up to date for read",
      .str_user_error        = "schema is not up to date for read",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4346, schema is not up to date for read",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4346, schema is not up to date for read"
};
static const _error _error_OB_ROLE_NOT_EXIST = {
      .error_name            = "OB_ROLE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "role does not exist",
      .str_user_error        = "role '%.*s' does not exist",
      .oracle_errno          = 1919,
      .oracle_str_error      = "ORA-01919: role does not exist",
      .oracle_str_user_error = "ORA-01919: role '%.*s' does not exist"
};
static const _error _error_OB_ROLE_EXIST = {
      .error_name            = "OB_ROLE_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "role exists",
      .str_user_error        = "role '%.*s' exists",
      .oracle_errno          = 1921,
      .oracle_str_error      = "ORA-01921: role name conflicts with another user or role name",
      .oracle_str_user_error = "ORA-01921: role name '%.*s' conflicts with another user or role name"
};
static const _error _error_OB_PRIV_DUP = {
      .error_name            = "OB_PRIV_DUP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate privilege listed",
      .str_user_error        = "duplicate privilege listed",
      .oracle_errno          = 1711,
      .oracle_str_error      = "ORA-01711: duplicate privilege listed",
      .oracle_str_user_error = "ORA-01711: duplicate privilege listed"
};
static const _error _error_OB_KEYSTORE_EXIST = {
      .error_name            = "OB_KEYSTORE_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the keystore already exists and each tenant can only have at most one",
      .str_user_error        = "the keystore already exists and each tenant can only have at most one",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4350, the keystore already exists and each tenant can only have at most one",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4350, the keystore already exists and each tenant can only have at most one"
};
static const _error _error_OB_KEYSTORE_NOT_EXIST = {
      .error_name            = "OB_KEYSTORE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the keystore is not exist",
      .str_user_error        = "the keystore is not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4351, the keystore is not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4351, the keystore is not exist"
};
static const _error _error_OB_KEYSTORE_WRONG_PASSWORD = {
      .error_name            = "OB_KEYSTORE_WRONG_PASSWORD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the password is wrong for keystore",
      .str_user_error        = "the password is wrong for keystore",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4352, the password is wrong for keystore",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4352, the password is wrong for keystore"
};
static const _error _error_OB_TABLESPACE_EXIST = {
      .error_name            = "OB_TABLESPACE_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "tablespace already exists",
      .str_user_error        = "tablespace '%.*s' already exists",
      .oracle_errno          = 1543,
      .oracle_str_error      = "ORA-01543: tablespace already exists",
      .oracle_str_user_error = "ORA-01543: tablespace '%.*s' already exists"
};
static const _error _error_OB_TABLESPACE_NOT_EXIST = {
      .error_name            = "OB_TABLESPACE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "tablespace does not exist",
      .str_user_error        = "tablespace '%.*s' does not exist",
      .oracle_errno          = 959,
      .oracle_str_error      = "ORA-00959: tablespace does not exist",
      .oracle_str_user_error = "ORA-00959: tablespace '%.*s' does not exist"
};
static const _error _error_OB_TABLESPACE_DELETE_NOT_EMPTY = {
      .error_name            = "OB_TABLESPACE_DELETE_NOT_EMPTY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot delete a tablespace which is not empty",
      .str_user_error        = "cannot delete a tablespace which is not empty",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4355, cannot delete a tablespace which is not empty",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4355, cannot delete a tablespace which is not empty"
};
static const _error _error_OB_FLOAT_PRECISION_OUT_RANGE = {
      .error_name            = "OB_FLOAT_PRECISION_OUT_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "floating point precision is out of range (1 to 126)",
      .str_user_error        = "floating point precision is out of range (1 to 126)",
      .oracle_errno          = 1724,
      .oracle_str_error      = "ORA-01724: floating point precision is out of range (1 to 126)",
      .oracle_str_user_error = "ORA-01724: floating point precision is out of range (1 to 126)"
};
static const _error _error_OB_NUMERIC_PRECISION_OUT_RANGE = {
      .error_name            = "OB_NUMERIC_PRECISION_OUT_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "numeric precision specifier is out of range (1 to 38)",
      .str_user_error        = "numeric precision specifier is out of range (1 to 38)",
      .oracle_errno          = 1727,
      .oracle_str_error      = "ORA-01727: numeric precision specifier is out of range (1 to 38)",
      .oracle_str_user_error = "ORA-01727: numeric precision specifier is out of range (1 to 38)"
};
static const _error _error_OB_NUMERIC_SCALE_OUT_RANGE = {
      .error_name            = "OB_NUMERIC_SCALE_OUT_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "numeric scale specifier is out of range (-84 to 127)",
      .str_user_error        = "numeric scale specifier is out of range (-84 to 127)",
      .oracle_errno          = 1728,
      .oracle_str_error      = "ORA-01728: numeric scale specifier is out of range (-84 to 127)",
      .oracle_str_user_error = "ORA-01728: numeric scale specifier is out of range (-84 to 127)"
};
static const _error _error_OB_KEYSTORE_NOT_OPEN = {
      .error_name            = "OB_KEYSTORE_NOT_OPEN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the keystore is not open",
      .str_user_error        = "the keystore is not open",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4359, the keystore is not open",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4359, the keystore is not open"
};
static const _error _error_OB_KEYSTORE_OPEN_NO_MASTER_KEY = {
      .error_name            = "OB_KEYSTORE_OPEN_NO_MASTER_KEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the keystore opened with dont have a master key",
      .str_user_error        = "the keystore opened with dont have a master key",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4360, the keystore opened with dont have a master key",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4360, the keystore opened with dont have a master key"
};
static const _error _error_OB_SLOG_REACH_MAX_CONCURRENCY = {
      .error_name            = "OB_SLOG_REACH_MAX_CONCURRENCY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "slog active transaction entries reach maximum",
      .str_user_error        = "slog active transaction entries reach maximum",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4361, slog active transaction entries reach maximum",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4361, slog active transaction entries reach maximum"
};
static const _error _error_OB_ERR_BY_ACCESS_OR_SESSION_CLAUSE_NOT_ALLOWED_FOR_NOAUDIT = {
      .error_name            = "OB_ERR_BY_ACCESS_OR_SESSION_CLAUSE_NOT_ALLOWED_FOR_NOAUDIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "BY ACCESS | SESSION clause not allowed for NOAUDIT",
      .str_user_error        = "BY ACCESS | SESSION clause not allowed for NOAUDIT",
      .oracle_errno          = 1718,
      .oracle_str_error      = "ORA-01718: BY ACCESS | SESSION clause not allowed for NOAUDIT",
      .oracle_str_user_error = "ORA-01718: BY ACCESS | SESSION clause not allowed for NOAUDIT"
};
static const _error _error_OB_ERR_AUDITING_THE_OBJECT_IS_NOT_SUPPORTED = {
      .error_name            = "OB_ERR_AUDITING_THE_OBJECT_IS_NOT_SUPPORTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "auditing the object is not supported",
      .str_user_error        = "auditing the object is not supported",
      .oracle_errno          = 1930,
      .oracle_str_error      = "ORA-01930: auditing the object is not supported",
      .oracle_str_user_error = "ORA-01930: auditing the object is not supported"
};
static const _error _error_OB_ERR_DDL_STATEMENT_CANNOT_BE_AUDITED_WITH_BY_SESSION_SPECIFIED = {
      .error_name            = "OB_ERR_DDL_STATEMENT_CANNOT_BE_AUDITED_WITH_BY_SESSION_SPECIFIED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "DDL statement cannot be audited with BY SESSION specified",
      .str_user_error        = "DDL statement cannot be audited with BY SESSION specified",
      .oracle_errno          = 32595,
      .oracle_str_error      = "ORA-32595: DDL statement cannot be audited with BY SESSION specified",
      .oracle_str_user_error = "ORA-32595: DDL statement cannot be audited with BY SESSION specified"
};
static const _error _error_OB_ERR_NOT_VALID_PASSWORD = {
      .error_name            = "OB_ERR_NOT_VALID_PASSWORD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NOT_VALID_PASSWORD,
      .sqlstate              = "HY000",
      .str_error             = "Your password does not satisfy the current policy requirements",
      .str_user_error        = "Your password does not satisfy the current policy requirements",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4365, Your password does not satisfy the current policy requirements",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4365, Your password does not satisfy the current policy requirements"
};
static const _error _error_OB_ERR_MUST_CHANGE_PASSWORD = {
      .error_name            = "OB_ERR_MUST_CHANGE_PASSWORD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_MUST_CHANGE_PASSWORD,
      .sqlstate              = "HY000",
      .str_error             = "You must reset your password using ALTER USER statement before executing this statement",
      .str_user_error        = "You must reset your password using ALTER USER statement before executing this statement",
      .oracle_errno          = 28001,
      .oracle_str_error      = "ORA-28001: the password has expired",
      .oracle_str_user_error = "ORA-28001: the password has expired"
};
static const _error _error_OB_OVERSIZE_NEED_RETRY = {
      .error_name            = "OB_OVERSIZE_NEED_RETRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_OVERSIZE_NEED_RETRY,
      .sqlstate              = "HY000",
      .str_error             = "The data more than 64M(rpc limit), split into smaller task and retry",
      .str_user_error        = "The data more than 64M(rpc limit), split into smaller task and retry",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4367, The data more than 64M(rpc limit), split into smaller task and retry",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4367, The data more than 64M(rpc limit), split into smaller task and retry"
};
static const _error _error_OB_OBCONFIG_CLUSTER_NOT_EXIST = {
      .error_name            = "OB_OBCONFIG_CLUSTER_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cluster not exists",
      .str_user_error        = "cluster not exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4368, cluster not exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4368, cluster not exists"
};
static const _error _error_OB_ERR_GET_MASTER_KEY = {
      .error_name            = "OB_ERR_GET_MASTER_KEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "fail to get master key",
      .str_user_error        = "fail to get master key",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4369, fail to get master key",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4369, fail to get master key"
};
static const _error _error_OB_ERR_TDE_METHOD = {
      .error_name            = "OB_ERR_TDE_METHOD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "tde_method parameter is invalid",
      .str_user_error        = "tde_method parameter is invalid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4370, tde_method parameter is invalid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4370, tde_method parameter is invalid"
};
static const _error _error_OB_KMS_SERVER_CONNECT_ERROR = {
      .error_name            = "OB_KMS_SERVER_CONNECT_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "kms server connect failed, may be kms server is down",
      .str_user_error        = "kms server connect failed, may be kms server is down",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4371, kms server connect failed, may be kms server is down",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4371, kms server connect failed, may be kms server is down"
};
static const _error _error_OB_KMS_SERVER_IS_BUSY = {
      .error_name            = "OB_KMS_SERVER_IS_BUSY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "kms server is busy, try again",
      .str_user_error        = "kms server is busy, try again",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4372, kms server is busy, try again",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4372, kms server is busy, try again"
};
static const _error _error_OB_KMS_SERVER_UPDATE_KEY_CONFLICT = {
      .error_name            = "OB_KMS_SERVER_UPDATE_KEY_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "kms server update key conflict at the same time, please try again",
      .str_user_error        = "kms server update key conflict at the same time, please try again",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4373, kms server update key conflict at the same time, please try again",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4373, kms server update key conflict at the same time, please try again"
};
static const _error _error_OB_ERR_VALUE_LARGER_THAN_ALLOWED = {
      .error_name            = "OB_ERR_VALUE_LARGER_THAN_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "value larger than specified precision allowed for this column",
      .str_user_error        = "value larger than specified precision allowed for this column",
      .oracle_errno          = 1438,
      .oracle_str_error      = "ORA-01438: value larger than specified precision allowed for this column",
      .oracle_str_user_error = "ORA-01438: value larger than specified precision allowed for this column"
};
static const _error _error_OB_DISK_ERROR = {
      .error_name            = "OB_DISK_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "observer has disk error",
      .str_user_error        = "observer has disk error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4375, observer has disk error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4375, observer has disk error"
};
static const _error _error_OB_UNIMPLEMENTED_FEATURE = {
      .error_name            = "OB_UNIMPLEMENTED_FEATURE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unimplemented feature",
      .str_user_error        = "unimplemented feature",
      .oracle_errno          = 3001,
      .oracle_str_error      = "ORA-03001: unimplemented feature",
      .oracle_str_user_error = "ORA-03001: unimplemented feature"
};
static const _error _error_OB_ERR_DEFENSIVE_CHECK = {
      .error_name            = "OB_ERR_DEFENSIVE_CHECK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "fatal internal error",
      .str_user_error        = "fatal internal error in [%.*s]",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4377, fatal internal error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4377, fatal internal error in [%.*s]"
};
static const _error _error_OB_CLUSTER_NAME_HASH_CONFLICT = {
      .error_name            = "OB_CLUSTER_NAME_HASH_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cluster name conflict",
      .str_user_error        = "cluster name conflict",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4378, cluster name conflict",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4378, cluster name conflict"
};
static const _error _error_OB_HEAP_TABLE_EXAUSTED = {
      .error_name            = "OB_HEAP_TABLE_EXAUSTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "heap table has reached max row size, cannot insert anymore",
      .str_user_error        = "heap table has reached max row size, cannot insert anymore",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4379, heap table has reached max row size, cannot insert anymore",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4379, heap table has reached max row size, cannot insert anymore"
};
static const _error _error_OB_ERR_INDEX_KEY_NOT_FOUND = {
      .error_name            = "OB_ERR_INDEX_KEY_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "index key not found",
      .str_user_error        = "index key not found",
      .oracle_errno          = 8102,
      .oracle_str_error      = "ORA-08102: index key not found",
      .oracle_str_user_error = "ORA-08102: index key not found"
};
static const _error _error_OB_UNSUPPORTED_DEPRECATED_FEATURE = {
      .error_name            = "OB_UNSUPPORTED_DEPRECATED_FEATURE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Not supported, deprecated %s feature",
      .str_user_error        = "Not supported, deprecated %s feature",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4381, Not supported, deprecated %s feature",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4381, Not supported, deprecated %s feature"
};
static const _error _error_OB_ERR_DUP_RESTART_SPEC = {
      .error_name            = "OB_ERR_DUP_RESTART_SPEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate RESTART specified",
      .str_user_error        = "duplicate RESTART specified",
      .oracle_errno          = 64601,
      .oracle_str_error      = "ORA-64601: duplicate RESTART specified",
      .oracle_str_user_error = "ORA-64601: duplicate RESTART specified"
};
static const _error _error_OB_GTI_NOT_READY = {
      .error_name            = "OB_GTI_NOT_READY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transaction id is not ready",
      .str_user_error        = "transaction id is not ready",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4383, transaction id is not ready",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4383, transaction id is not ready"
};
static const _error _error_OB_STACK_OVERFLOW = {
      .error_name            = "OB_STACK_OVERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "stack overflow",
      .str_user_error        = "stack overflow",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4385, stack overflow",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4385, stack overflow"
};
static const _error _error_OB_NOT_ALLOW_REMOVING_LEADER = {
      .error_name            = "OB_NOT_ALLOW_REMOVING_LEADER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Do not allow removing leader",
      .str_user_error        = "Do not allow removing leader",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4386, Do not allow removing leader",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4386, Do not allow removing leader"
};
static const _error _error_OB_NEED_SWITCH_CONSUMER_GROUP = {
      .error_name            = "OB_NEED_SWITCH_CONSUMER_GROUP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 13937,
      .sqlstate              = "HY000",
      .str_error             = "Failed to switch resource group",
      .str_user_error        = "Failed to switch resource group",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4387, Failed to switch resource group",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4387, Failed to switch resource group"
};
static const _error _error_OB_UNEXPECT_INTERNAL_ERROR = {
      .error_name            = "OB_UNEXPECT_INTERNAL_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Unexpected internal error happen, please checkout the internal errcode",
      .str_user_error        = "Unexpected internal error happen, please checkout the internal errcode",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4388, Unexpected internal error happen, please checkout the internal errcode",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4388, Unexpected internal error happen, please checkout the internal errcode"
};
static const _error _error_OB_ERR_TOO_MUCH_TIME = {
      .error_name            = "OB_ERR_TOO_MUCH_TIME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Processing time is too long",
      .str_user_error        = "Processing time is too long",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4389, Processing time is too long",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4389, Processing time is too long"
};
static const _error _error_OB_ERR_REMOTE_SCHEMA_NOT_FULL = {
      .error_name            = "OB_ERR_REMOTE_SCHEMA_NOT_FULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Schema of remote server is not refreshed yet",
      .str_user_error        = "Schema of remote server is not refreshed yet",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4390, Schema of remote server is not refreshed yet",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4390, Schema of remote server is not refreshed yet"
};
static const _error _error_OB_DDL_SSTABLE_RANGE_CROSS = {
      .error_name            = "OB_DDL_SSTABLE_RANGE_CROSS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ddl sstable version range cross",
      .str_user_error        = "ddl sstable version range cross",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4391, ddl sstable version range cross",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4391, ddl sstable version range cross"
};
static const _error _error_OB_DISK_HUNG = {
      .error_name            = "OB_DISK_HUNG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "disk is hung",
      .str_user_error        = "disk is hung",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4392, disk is hung",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4392, disk is hung"
};
static const _error _error_OB_ERR_OBSERVER_START = {
      .error_name            = "OB_ERR_OBSERVER_START",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "observer start process failure",
      .str_user_error        = "observer start process failure",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4393, observer start process failure",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4393, observer start process failure"
};
static const _error _error_OB_ERR_OBSERVER_STOP = {
      .error_name            = "OB_ERR_OBSERVER_STOP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "observer stop process failure",
      .str_user_error        = "observer stop process failure",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4394, observer stop process failure",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4394, observer stop process failure"
};
static const _error _error_OB_ERR_OBSERVICE_START = {
      .error_name            = "OB_ERR_OBSERVICE_START",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "observice start process has failure",
      .str_user_error        = "observice start process has failure",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4395, observice start process has failure",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4395, observice start process has failure"
};
static const _error _error_OB_ERR_THREAD_PANIC = {
      .error_name            = "OB_ERR_THREAD_PANIC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Worker thread panic, thread may be terminated or hung",
      .str_user_error        = "Worker thread panic, thread may be terminated or hung",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4396, Worker thread panic, thread may be terminated or hung",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4396, Worker thread panic, thread may be terminated or hung"
};
static const _error _error_OB_ENCODING_EST_SIZE_OVERFLOW = {
      .error_name            = "OB_ENCODING_EST_SIZE_OVERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Encoding estimated size overflow",
      .str_user_error        = "Encoding estimated size overflow",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4397, Encoding estimated size overflow",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4397, Encoding estimated size overflow"
};
static const _error _error_OB_INVALID_SUB_PARTITION_TYPE = {
      .error_name            = "OB_INVALID_SUB_PARTITION_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 1500,
      .sqlstate              = "HY000",
      .str_error             = "It is only possible to mix RANGE/LIST partitioning with HASH/KEY partitioning for subpartitioning",
      .str_user_error        = "It is only possible to mix RANGE/LIST partitioning with HASH/KEY partitioning for subpartitioning",
      .oracle_errno          = 14020,
      .oracle_str_error      = "ORA-14020: this physical attribute may not be specified for a table partition",
      .oracle_str_user_error = "ORA-14020: this physical attribute may not be specified for a table partition"
};
static const _error _error_OB_ERR_UNEXPECTED_UNIT_STATUS = {
      .error_name            = "OB_ERR_UNEXPECTED_UNIT_STATUS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Unit status is not expected",
      .str_user_error        = "Unit status is not expected",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4399, Unit status is not expected",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4399, Unit status is not expected"
};
static const _error _error_OB_AUTOINC_CACHE_NOT_EQUAL = {
      .error_name            = "OB_AUTOINC_CACHE_NOT_EQUAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Autoinc cache's autoinc version is not equal to request's autoinc version",
      .str_user_error        = "Autoinc cache's autoinc version is not equal to request's autoinc version",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4400, Autoinc cache's autoinc version is not equal to request's autoinc version",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4400, Autoinc cache's autoinc version is not equal to request's autoinc version"
};
static const _error _error_OB_ERR_KILL_CLIENT_SESSION = {
      .error_name            = "OB_ERR_KILL_CLIENT_SESSION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 4401,
      .sqlstate              = "HY000",
      .str_error             = "Client Session need be killed",
      .str_user_error        = "Client Session need be killed",
      .oracle_errno          = 4401,
      .oracle_str_error      = "ORA-04401: Client Session need be killed",
      .oracle_str_user_error = "ORA-04401: Client Session need be killed"
};
static const _error _error_OB_ERR_KILL_CLIENT_SESSION_FAILED = {
      .error_name            = "OB_ERR_KILL_CLIENT_SESSION_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Kill Client Session failed",
      .str_user_error        = "Kill Client Session failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4402, Kill Client Session failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4402, Kill Client Session failed"
};
static const _error _error_OB_IMPROPER_OS_PARAM = {
      .error_name            = "OB_IMPROPER_OS_PARAM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "OS params check failed, because the operating system has improper parameter configurations",
      .str_user_error        = "OS params check failed, because the operating system has improper parameter configurations",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4403, OS params check failed, because the operating system has improper parameter configurations",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4403, OS params check failed, because the operating system has improper parameter configurations"
};
static const _error _error_OB_IMPORT_NOT_IN_SERVER = {
      .error_name            = "OB_IMPORT_NOT_IN_SERVER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Import not in service",
      .str_user_error        = "Import not in service",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4505, Import not in service",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4505, Import not in service"
};
static const _error _error_OB_CONVERT_ERROR = {
      .error_name            = "OB_CONVERT_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Convert error",
      .str_user_error        = "Convert error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4507, Convert error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4507, Convert error"
};
static const _error _error_OB_BYPASS_TIMEOUT = {
      .error_name            = "OB_BYPASS_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Bypass timeout",
      .str_user_error        = "Bypass timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4510, Bypass timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4510, Bypass timeout"
};
static const _error _error_OB_RS_STATE_NOT_ALLOW = {
      .error_name            = "OB_RS_STATE_NOT_ALLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "RootServer state error",
      .str_user_error        = "RootServer state error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4512, RootServer state error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4512, RootServer state error"
};
static const _error _error_OB_NO_REPLICA_VALID = {
      .error_name            = "OB_NO_REPLICA_VALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "No replica is valid",
      .str_user_error        = "No replica is valid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4515, No replica is valid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4515, No replica is valid"
};
static const _error _error_OB_NO_NEED_UPDATE = {
      .error_name            = "OB_NO_NEED_UPDATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "No need to update",
      .str_user_error        = "No need to update",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4517, No need to update",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4517, No need to update"
};
static const _error _error_OB_CACHE_TIMEOUT = {
      .error_name            = "OB_CACHE_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Cache timeout",
      .str_user_error        = "Cache timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4518, Cache timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4518, Cache timeout"
};
static const _error _error_OB_ITER_STOP = {
      .error_name            = "OB_ITER_STOP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Iteration was stopped",
      .str_user_error        = "Iteration was stopped",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4519, Iteration was stopped",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4519, Iteration was stopped"
};
static const _error _error_OB_ZONE_ALREADY_MASTER = {
      .error_name            = "OB_ZONE_ALREADY_MASTER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The zone is the master already",
      .str_user_error        = "The zone is the master already",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4523, The zone is the master already",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4523, The zone is the master already"
};
static const _error _error_OB_IP_PORT_IS_NOT_SLAVE_ZONE = {
      .error_name            = "OB_IP_PORT_IS_NOT_SLAVE_ZONE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Not slave zone",
      .str_user_error        = "Not slave zone",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4524, Not slave zone",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4524, Not slave zone"
};
static const _error _error_OB_ZONE_IS_NOT_SLAVE = {
      .error_name            = "OB_ZONE_IS_NOT_SLAVE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Not slave zone",
      .str_user_error        = "Not slave zone",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4525, Not slave zone",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4525, Not slave zone"
};
static const _error _error_OB_ZONE_IS_NOT_MASTER = {
      .error_name            = "OB_ZONE_IS_NOT_MASTER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Not master zone",
      .str_user_error        = "Not master zone",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4526, Not master zone",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4526, Not master zone"
};
static const _error _error_OB_CONFIG_NOT_SYNC = {
      .error_name            = "OB_CONFIG_NOT_SYNC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "F0000",
      .str_error             = "Configuration not sync",
      .str_user_error        = "Configuration not sync",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4527, Configuration not sync",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4527, Configuration not sync"
};
static const _error _error_OB_IP_PORT_IS_NOT_ZONE = {
      .error_name            = "OB_IP_PORT_IS_NOT_ZONE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Not a zone address",
      .str_user_error        = "Not a zone address",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4528, Not a zone address",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4528, Not a zone address"
};
static const _error _error_OB_MASTER_ZONE_NOT_EXIST = {
      .error_name            = "OB_MASTER_ZONE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Master zone not exist",
      .str_user_error        = "Master zone not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4529, Master zone not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4529, Master zone not exist"
};
static const _error _error_OB_ZONE_INFO_NOT_EXIST = {
      .error_name            = "OB_ZONE_INFO_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Zone info not exist",
      .str_user_error        = "Zone info \'%s\' not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4530, Zone info not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4530, Zone info \'%s\' not exist"
};
static const _error _error_OB_GET_ZONE_MASTER_UPS_FAILED = {
      .error_name            = "OB_GET_ZONE_MASTER_UPS_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Failed to get master UpdateServer",
      .str_user_error        = "Failed to get master UpdateServer",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4531, Failed to get master UpdateServer",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4531, Failed to get master UpdateServer"
};
static const _error _error_OB_MULTIPLE_MASTER_ZONES_EXIST = {
      .error_name            = "OB_MULTIPLE_MASTER_ZONES_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Multiple master zones",
      .str_user_error        = "Multiple master zones",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4532, Multiple master zones",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4532, Multiple master zones"
};
static const _error _error_OB_INDEXING_ZONE_INVALID = {
      .error_name            = "OB_INDEXING_ZONE_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "indexing zone is not exist anymore or not active",
      .str_user_error        = "indexing zone is not exist anymore or not active",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4533, indexing zone is not exist anymore or not active",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4533, indexing zone is not exist anymore or not active"
};
static const _error _error_OB_ROOT_TABLE_RANGE_NOT_EXIST = {
      .error_name            = "OB_ROOT_TABLE_RANGE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Tablet range not exist",
      .str_user_error        = "Tablet range not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4537, Tablet range not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4537, Tablet range not exist"
};
static const _error _error_OB_ROOT_MIGRATE_CONCURRENCY_FULL = {
      .error_name            = "OB_ROOT_MIGRATE_CONCURRENCY_FULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Migrate concurrency full",
      .str_user_error        = "Migrate concurrency full",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4538, Migrate concurrency full",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4538, Migrate concurrency full"
};
static const _error _error_OB_ROOT_MIGRATE_INFO_NOT_FOUND = {
      .error_name            = "OB_ROOT_MIGRATE_INFO_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Migrate info not found",
      .str_user_error        = "Migrate info not found",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4539, Migrate info not found",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4539, Migrate info not found"
};
static const _error _error_OB_NOT_DATA_LOAD_TABLE = {
      .error_name            = "OB_NOT_DATA_LOAD_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "No data to load",
      .str_user_error        = "No data to load",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4540, No data to load",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4540, No data to load"
};
static const _error _error_OB_DATA_LOAD_TABLE_DUPLICATED = {
      .error_name            = "OB_DATA_LOAD_TABLE_DUPLICATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Duplicated table data to load",
      .str_user_error        = "Duplicated table data to load",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4541, Duplicated table data to load",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4541, Duplicated table data to load"
};
static const _error _error_OB_ROOT_TABLE_ID_EXIST = {
      .error_name            = "OB_ROOT_TABLE_ID_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Table ID exist",
      .str_user_error        = "Table ID exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4542, Table ID exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4542, Table ID exist"
};
static const _error _error_OB_INDEX_TIMEOUT = {
      .error_name            = "OB_INDEX_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Building index timeout",
      .str_user_error        = "Building index timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4543, Building index timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4543, Building index timeout"
};
static const _error _error_OB_ROOT_NOT_INTEGRATED = {
      .error_name            = "OB_ROOT_NOT_INTEGRATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Root not integrated",
      .str_user_error        = "Root not integrated",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4544, Root not integrated",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4544, Root not integrated"
};
static const _error _error_OB_INDEX_INELIGIBLE = {
      .error_name            = "OB_INDEX_INELIGIBLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "index data not unique",
      .str_user_error        = "index data not unique",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4545, index data not unique",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4545, index data not unique"
};
static const _error _error_OB_REBALANCE_EXEC_TIMEOUT = {
      .error_name            = "OB_REBALANCE_EXEC_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "execute replication or migration task timeout",
      .str_user_error        = "execute replication or migration task timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4546, execute replication or migration task timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4546, execute replication or migration task timeout"
};
static const _error _error_OB_MERGE_NOT_STARTED = {
      .error_name            = "OB_MERGE_NOT_STARTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "global merge not started",
      .str_user_error        = "global merge not started",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4547, global merge not started",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4547, global merge not started"
};
static const _error _error_OB_MERGE_ALREADY_STARTED = {
      .error_name            = "OB_MERGE_ALREADY_STARTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "merge already started",
      .str_user_error        = "merge already started",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4548, merge already started",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4548, merge already started"
};
static const _error _error_OB_ROOTSERVICE_EXIST = {
      .error_name            = "OB_ROOTSERVICE_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "rootservice already exist",
      .str_user_error        = "rootservice already exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4549, rootservice already exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4549, rootservice already exist"
};
static const _error _error_OB_RS_SHUTDOWN = {
      .error_name            = "OB_RS_SHUTDOWN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "rootservice is shutdown",
      .str_user_error        = "rootservice is shutdown",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4550, rootservice is shutdown",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4550, rootservice is shutdown"
};
static const _error _error_OB_SERVER_MIGRATE_IN_DENIED = {
      .error_name            = "OB_SERVER_MIGRATE_IN_DENIED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "server migrate in denied",
      .str_user_error        = "server migrate in denied",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4551, server migrate in denied",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4551, server migrate in denied"
};
static const _error _error_OB_REBALANCE_TASK_CANT_EXEC = {
      .error_name            = "OB_REBALANCE_TASK_CANT_EXEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "rebalance task can not executing now",
      .str_user_error        = "rebalance task can not executing now",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4552, rebalance task can not executing now",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4552, rebalance task can not executing now"
};
static const _error _error_OB_PARTITION_CNT_REACH_ROOTSERVER_LIMIT = {
      .error_name            = "OB_PARTITION_CNT_REACH_ROOTSERVER_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "rootserver can not hold more partition",
      .str_user_error        = "rootserver can not hold more partition",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4553, rootserver can not hold more partition",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4553, rootserver can not hold more partition"
};
static const _error _error_OB_REBALANCE_TASK_NOT_IN_PROGRESS = {
      .error_name            = "OB_REBALANCE_TASK_NOT_IN_PROGRESS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "rebalance task not in progress on observer",
      .str_user_error        = "rebalance task not in progress on observer",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4554, rebalance task not in progress on observer",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4554, rebalance task not in progress on observer"
};
static const _error _error_OB_DATA_SOURCE_NOT_EXIST = {
      .error_name            = "OB_DATA_SOURCE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Data source not exist",
      .str_user_error        = "Data source not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4600, Data source not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4600, Data source not exist"
};
static const _error _error_OB_DATA_SOURCE_TABLE_NOT_EXIST = {
      .error_name            = "OB_DATA_SOURCE_TABLE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Data source table not exist",
      .str_user_error        = "Data source table not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4601, Data source table not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4601, Data source table not exist"
};
static const _error _error_OB_DATA_SOURCE_RANGE_NOT_EXIST = {
      .error_name            = "OB_DATA_SOURCE_RANGE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Data source range not exist",
      .str_user_error        = "Data source range not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4602, Data source range not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4602, Data source range not exist"
};
static const _error _error_OB_DATA_SOURCE_DATA_NOT_EXIST = {
      .error_name            = "OB_DATA_SOURCE_DATA_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Data source data not exist",
      .str_user_error        = "Data source data not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4603, Data source data not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4603, Data source data not exist"
};
static const _error _error_OB_DATA_SOURCE_SYS_ERROR = {
      .error_name            = "OB_DATA_SOURCE_SYS_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Data source sys error",
      .str_user_error        = "Data source sys error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4604, Data source sys error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4604, Data source sys error"
};
static const _error _error_OB_DATA_SOURCE_TIMEOUT = {
      .error_name            = "OB_DATA_SOURCE_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Data source timeout",
      .str_user_error        = "Data source timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4605, Data source timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4605, Data source timeout"
};
static const _error _error_OB_DATA_SOURCE_CONCURRENCY_FULL = {
      .error_name            = "OB_DATA_SOURCE_CONCURRENCY_FULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "53000",
      .str_error             = "Data source concurrency full",
      .str_user_error        = "Data source concurrency full",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4606, Data source concurrency full",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4606, Data source concurrency full"
};
static const _error _error_OB_DATA_SOURCE_WRONG_URI_FORMAT = {
      .error_name            = "OB_DATA_SOURCE_WRONG_URI_FORMAT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Data source wrong URI format",
      .str_user_error        = "Data source wrong URI format",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4607, Data source wrong URI format",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4607, Data source wrong URI format"
};
static const _error _error_OB_SSTABLE_VERSION_UNEQUAL = {
      .error_name            = "OB_SSTABLE_VERSION_UNEQUAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "SSTable version not equal",
      .str_user_error        = "SSTable version not equal",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4608, SSTable version not equal",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4608, SSTable version not equal"
};
static const _error _error_OB_UPS_RENEW_LEASE_NOT_ALLOWED = {
      .error_name            = "OB_UPS_RENEW_LEASE_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ups should not renew its lease",
      .str_user_error        = "ups should not renew its lease",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4609, ups should not renew its lease",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4609, ups should not renew its lease"
};
static const _error _error_OB_UPS_COUNT_OVER_LIMIT = {
      .error_name            = "OB_UPS_COUNT_OVER_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ups count over limit",
      .str_user_error        = "ups count over limit",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4610, ups count over limit",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4610, ups count over limit"
};
static const _error _error_OB_NO_UPS_MAJORITY = {
      .error_name            = "OB_NO_UPS_MAJORITY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ups not form a majority",
      .str_user_error        = "ups not form a majority",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4611, ups not form a majority",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4611, ups not form a majority"
};
static const _error _error_OB_INDEX_COUNT_REACH_THE_LIMIT = {
      .error_name            = "OB_INDEX_COUNT_REACH_THE_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "created index tables count has reach the limit:128",
      .str_user_error        = "created index tables count has reach the limit:128",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4613, created index tables count has reach the limit:128",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4613, created index tables count has reach the limit:128"
};
static const _error _error_OB_TASK_EXPIRED = {
      .error_name            = "OB_TASK_EXPIRED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "task expired",
      .str_user_error        = "task expired",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4614, task expired",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4614, task expired"
};
static const _error _error_OB_TABLEGROUP_NOT_EMPTY = {
      .error_name            = "OB_TABLEGROUP_NOT_EMPTY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "tablegroup is not empty",
      .str_user_error        = "tablegroup is not empty",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4615, tablegroup is not empty",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4615, tablegroup is not empty"
};
static const _error _error_OB_INVALID_SERVER_STATUS = {
      .error_name            = "OB_INVALID_SERVER_STATUS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "server status is not valid",
      .str_user_error        = "server status is not valid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4620, server status is not valid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4620, server status is not valid"
};
static const _error _error_OB_WAIT_ELEC_LEADER_TIMEOUT = {
      .error_name            = "OB_WAIT_ELEC_LEADER_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "wait elect partition leader timeout",
      .str_user_error        = "wait elect partition leader timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4621, wait elect partition leader timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4621, wait elect partition leader timeout"
};
static const _error _error_OB_WAIT_ALL_RS_ONLINE_TIMEOUT = {
      .error_name            = "OB_WAIT_ALL_RS_ONLINE_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "wait all rs online timeout",
      .str_user_error        = "wait all rs online timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4622, wait all rs online timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4622, wait all rs online timeout"
};
static const _error _error_OB_ALL_REPLICAS_ON_MERGE_ZONE = {
      .error_name            = "OB_ALL_REPLICAS_ON_MERGE_ZONE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "all replicas of partition group are on zones to merge",
      .str_user_error        = "all replicas of partition group are on zones to merge",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4623, all replicas of partition group are on zones to merge",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4623, all replicas of partition group are on zones to merge"
};
static const _error _error_OB_MACHINE_RESOURCE_NOT_ENOUGH = {
      .error_name            = "OB_MACHINE_RESOURCE_NOT_ENOUGH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "machine resource is not enough to hold a new unit",
      .str_user_error        = "zone '%s' server \'%s\' %s resource is not enough to hold a new unit",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4624, machine resource is not enough to hold a new unit",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4624, zone '%s' server \'%s\' %s resource is not enough to hold a new unit"
};
static const _error _error_OB_NOT_SERVER_CAN_HOLD_SOFTLY = {
      .error_name            = "OB_NOT_SERVER_CAN_HOLD_SOFTLY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not server can hold the unit and not over soft limit",
      .str_user_error        = "not server can hold the unit and not over soft limit",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4625, not server can hold the unit and not over soft limit",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4625, not server can hold the unit and not over soft limit"
};
static const _error _error_OB_RESOURCE_POOL_ALREADY_GRANTED = {
      .error_name            = "OB_RESOURCE_POOL_ALREADY_GRANTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "resource pool has already been granted to a tenant",
      .str_user_error        = "resource pool \'%s\' has already been granted to a tenant",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4626, resource pool has already been granted to a tenant",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4626, resource pool \'%s\' has already been granted to a tenant"
};
static const _error _error_OB_SERVER_ALREADY_DELETED = {
      .error_name            = "OB_SERVER_ALREADY_DELETED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "server has already been deleted",
      .str_user_error        = "server has already been deleted",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4628, server has already been deleted",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4628, server has already been deleted"
};
static const _error _error_OB_SERVER_NOT_DELETING = {
      .error_name            = "OB_SERVER_NOT_DELETING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "server is not in deleting status",
      .str_user_error        = "server is not in deleting status",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4629, server is not in deleting status",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4629, server is not in deleting status"
};
static const _error _error_OB_SERVER_NOT_IN_WHITE_LIST = {
      .error_name            = "OB_SERVER_NOT_IN_WHITE_LIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "server not in server white list",
      .str_user_error        = "server not in server white list",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4630, server not in server white list",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4630, server not in server white list"
};
static const _error _error_OB_SERVER_ZONE_NOT_MATCH = {
      .error_name            = "OB_SERVER_ZONE_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "server zone not match",
      .str_user_error        = "server zone not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4631, server zone not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4631, server zone not match"
};
static const _error _error_OB_OVER_ZONE_NUM_LIMIT = {
      .error_name            = "OB_OVER_ZONE_NUM_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "zone num has reach max zone num",
      .str_user_error        = "zone num has reach max zone num",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4632, zone num has reach max zone num",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4632, zone num has reach max zone num"
};
static const _error _error_OB_ZONE_STATUS_NOT_MATCH = {
      .error_name            = "OB_ZONE_STATUS_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "zone status not match",
      .str_user_error        = "zone status not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4633, zone status not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4633, zone status not match"
};
static const _error _error_OB_RESOURCE_UNIT_IS_REFERENCED = {
      .error_name            = "OB_RESOURCE_UNIT_IS_REFERENCED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "resource unit is referenced by resource pool",
      .str_user_error        = "resource unit \'%s\' is referenced by some resource pool",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4634, resource unit is referenced by resource pool",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4634, resource unit \'%s\' is referenced by some resource pool"
};
static const _error _error_OB_DIFFERENT_PRIMARY_ZONE = {
      .error_name            = "OB_DIFFERENT_PRIMARY_ZONE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "table schema primary zone different with other table in same tablegroup",
      .str_user_error        = "table schema primary zone different with other table in same tablegroup",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4636, table schema primary zone different with other table in same tablegroup",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4636, table schema primary zone different with other table in same tablegroup"
};
static const _error _error_OB_SERVER_NOT_ACTIVE = {
      .error_name            = "OB_SERVER_NOT_ACTIVE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "server is not active",
      .str_user_error        = "server is not active",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4637, server is not active",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4637, server is not active"
};
static const _error _error_OB_RS_NOT_MASTER = {
      .error_name            = "OB_RS_NOT_MASTER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The RootServer is not the master",
      .str_user_error        = "The RootServer is not the master",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4638, The RootServer is not the master",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4638, The RootServer is not the master"
};
static const _error _error_OB_CANDIDATE_LIST_ERROR = {
      .error_name            = "OB_CANDIDATE_LIST_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The candidate list is invalid",
      .str_user_error        = "The candidate list is invalid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4639, The candidate list is invalid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4639, The candidate list is invalid"
};
static const _error _error_OB_PARTITION_ZONE_DUPLICATED = {
      .error_name            = "OB_PARTITION_ZONE_DUPLICATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The chosen partition servers belong to same zone.",
      .str_user_error        = "The chosen partition servers belong to same zone.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4640, The chosen partition servers belong to same zone.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4640, The chosen partition servers belong to same zone."
};
static const _error _error_OB_ZONE_DUPLICATED = {
      .error_name            = "OB_ZONE_DUPLICATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Duplicated zone in zone list",
      .str_user_error        = "Duplicated zone \'%s\' in zone list %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4641, Duplicated zone in zone list",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4641, Duplicated zone \'%s\' in zone list %s"
};
static const _error _error_OB_NOT_ALL_ZONE_ACTIVE = {
      .error_name            = "OB_NOT_ALL_ZONE_ACTIVE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Not all zone in zone list are active",
      .str_user_error        = "Not all zone in zone list are active",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4642, Not all zone in zone list are active",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4642, Not all zone in zone list are active"
};
static const _error _error_OB_PRIMARY_ZONE_NOT_IN_ZONE_LIST = {
      .error_name            = "OB_PRIMARY_ZONE_NOT_IN_ZONE_LIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "primary zone not in zone list",
      .str_user_error        = "primary zone \'%s\' not in zone list %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4643, primary zone not in zone list",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4643, primary zone \'%s\' not in zone list %s"
};
static const _error _error_OB_REPLICA_NUM_NOT_MATCH = {
      .error_name            = "OB_REPLICA_NUM_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "replica num not same with zone count",
      .str_user_error        = "replica num not same with zone count",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4644, replica num not same with zone count",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4644, replica num not same with zone count"
};
static const _error _error_OB_ZONE_LIST_POOL_LIST_NOT_MATCH = {
      .error_name            = "OB_ZONE_LIST_POOL_LIST_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "zone list not a subset of  resource pool list",
      .str_user_error        = "zone list %s not a subset of resource pool zone list %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4645, zone list not a subset of  resource pool list",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4645, zone list %s not a subset of resource pool zone list %s"
};
static const _error _error_OB_INVALID_TENANT_NAME = {
      .error_name            = "OB_INVALID_TENANT_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "tenant name is too long",
      .str_user_error        = "tenant name \'%s\' over max_tenant_name_length %ld",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4646, tenant name is too long",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4646, tenant name \'%s\' over max_tenant_name_length %ld"
};
static const _error _error_OB_EMPTY_RESOURCE_POOL_LIST = {
      .error_name            = "OB_EMPTY_RESOURCE_POOL_LIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "resource pool list is empty",
      .str_user_error        = "resource pool list is empty",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4647, resource pool list is empty",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4647, resource pool list is empty"
};
static const _error _error_OB_RESOURCE_UNIT_NOT_EXIST = {
      .error_name            = "OB_RESOURCE_UNIT_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "resource unit not exist",
      .str_user_error        = "resource unit \'%s\' not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4648, resource unit not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4648, resource unit \'%s\' not exist"
};
static const _error _error_OB_RESOURCE_UNIT_EXIST = {
      .error_name            = "OB_RESOURCE_UNIT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "resource unit already exist",
      .str_user_error        = "resource unit \'%s\' already exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4649, resource unit already exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4649, resource unit \'%s\' already exist"
};
static const _error _error_OB_RESOURCE_POOL_NOT_EXIST = {
      .error_name            = "OB_RESOURCE_POOL_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "resource pool not exist",
      .str_user_error        = "resource pool \'%s\' not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4650, resource pool not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4650, resource pool \'%s\' not exist"
};
static const _error _error_OB_RESOURCE_POOL_EXIST = {
      .error_name            = "OB_RESOURCE_POOL_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "resource pool already exist",
      .str_user_error        = "resource pool \'%s\' exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4651, resource pool already exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4651, resource pool \'%s\' exist"
};
static const _error _error_OB_WAIT_LEADER_SWITCH_TIMEOUT = {
      .error_name            = "OB_WAIT_LEADER_SWITCH_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "wait leader switch timeout",
      .str_user_error        = "wait leader switch timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4652, wait leader switch timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4652, wait leader switch timeout"
};
static const _error _error_OB_LOCATION_NOT_EXIST = {
      .error_name            = "OB_LOCATION_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "location not exist",
      .str_user_error        = "location not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4653, location not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4653, location not exist"
};
static const _error _error_OB_LOCATION_LEADER_NOT_EXIST = {
      .error_name            = "OB_LOCATION_LEADER_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "location leader not exist",
      .str_user_error        = "location leader not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4654, location leader not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4654, location leader not exist"
};
static const _error _error_OB_ZONE_NOT_ACTIVE = {
      .error_name            = "OB_ZONE_NOT_ACTIVE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "zone not active",
      .str_user_error        = "zone not active",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4655, zone not active",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4655, zone not active"
};
static const _error _error_OB_UNIT_NUM_OVER_SERVER_COUNT = {
      .error_name            = "OB_UNIT_NUM_OVER_SERVER_COUNT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "resource pool unit num is bigger than zone server count",
      .str_user_error        = "resource pool unit num is bigger than zone server count",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4656, resource pool unit num is bigger than zone server count",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4656, resource pool unit num is bigger than zone server count"
};
static const _error _error_OB_POOL_SERVER_INTERSECT = {
      .error_name            = "OB_POOL_SERVER_INTERSECT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "resource pool list unit server intersect",
      .str_user_error        = "resource pool list %s unit servers intersect",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4657, resource pool list unit server intersect",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4657, resource pool list %s unit servers intersect"
};
static const _error _error_OB_NOT_SINGLE_RESOURCE_POOL = {
      .error_name            = "OB_NOT_SINGLE_RESOURCE_POOL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "create tenant only support single resource pool now",
      .str_user_error        = "create tenant only support single resource pool now, but pool list is %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4658, create tenant only support single resource pool now",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4658, create tenant only support single resource pool now, but pool list is %s"
};
static const _error _error_OB_RESOURCE_UNIT_VALUE_BELOW_LIMIT = {
      .error_name            = "OB_RESOURCE_UNIT_VALUE_BELOW_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "resource unit value is below limit",
      .str_user_error        = "invalid %s value, min value is %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4659, resource unit value is below limit",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4659, invalid %s value, min value is %s"
};
static const _error _error_OB_STOP_SERVER_IN_MULTIPLE_ZONES = {
      .error_name            = "OB_STOP_SERVER_IN_MULTIPLE_ZONES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Can not stop server in multiple zones",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4660, Can not stop server in multiple zones",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4660, %s"
};
static const _error _error_OB_SESSION_ENTRY_EXIST = {
      .error_name            = "OB_SESSION_ENTRY_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Session already exist",
      .str_user_error        = "Session already exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4661, Session already exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4661, Session already exist"
};
static const _error _error_OB_GOT_SIGNAL_ABORTING = {
      .error_name            = "OB_GOT_SIGNAL_ABORTING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_GOT_SIGNAL,
      .sqlstate              = "01000",
      .str_error             = "Got signal. Aborting!",
      .str_user_error        = "%s: Got signal %d. Aborting!",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4662, Got signal. Aborting!",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4662, %s: Got signal %d. Aborting!"
};
static const _error _error_OB_SERVER_NOT_ALIVE = {
      .error_name            = "OB_SERVER_NOT_ALIVE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "server is not alive",
      .str_user_error        = "server is not alive",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4663, server is not alive",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4663, server is not alive"
};
static const _error _error_OB_GET_LOCATION_TIME_OUT = {
      .error_name            = "OB_GET_LOCATION_TIME_OUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 4012,
      .sqlstate              = "HY000",
      .str_error             = "Timeout",
      .str_user_error        = "Timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4664, Timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4664, Timeout"
};
static const _error _error_OB_UNIT_IS_MIGRATING = {
      .error_name            = "OB_UNIT_IS_MIGRATING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Unit is migrating, can not migrate again",
      .str_user_error        = "Unit is migrating, can not migrate again",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4665, Unit is migrating, can not migrate again",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4665, Unit is migrating, can not migrate again"
};
static const _error _error_OB_CLUSTER_NO_MATCH = {
      .error_name            = "OB_CLUSTER_NO_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cluster name does not match",
      .str_user_error        = "cluster name does not match to \'%s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4666, cluster name does not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4666, cluster name does not match to \'%s\'"
};
static const _error _error_OB_CHECK_ZONE_MERGE_ORDER = {
      .error_name            = "OB_CHECK_ZONE_MERGE_ORDER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Please check new zone in zone_merge_order. You can show parameters like 'zone_merge_order'",
      .str_user_error        = "Please check new zone in zone_merge_order. You can show parameters like 'zone_merge_order'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4667, Please check new zone in zone_merge_order. You can show parameters like 'zone_merge_order'",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4667, Please check new zone in zone_merge_order. You can show parameters like 'zone_merge_order'"
};
static const _error _error_OB_ERR_ZONE_NOT_EMPTY = {
      .error_name            = "OB_ERR_ZONE_NOT_EMPTY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "zone not empty",
      .str_user_error        = "The zone is not empty and can not be deleted. You should delete the servers of the zone. There are %ld servers alive and %ld not alive.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4668, zone not empty",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4668, The zone is not empty and can not be deleted. You should delete the servers of the zone. There are %ld servers alive and %ld not alive."
};
static const _error _error_OB_DIFFERENT_LOCALITY = {
      .error_name            = "OB_DIFFERENT_LOCALITY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "locality not match, check it",
      .str_user_error        = "locality not match, check it",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4669, locality not match, check it",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4669, locality not match, check it"
};
static const _error _error_OB_EMPTY_LOCALITY = {
      .error_name            = "OB_EMPTY_LOCALITY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "locality is empty",
      .str_user_error        = "locality is empty",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4670, locality is empty",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4670, locality is empty"
};
static const _error _error_OB_FULL_REPLICA_NUM_NOT_ENOUGH = {
      .error_name            = "OB_FULL_REPLICA_NUM_NOT_ENOUGH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "full replica num not enough",
      .str_user_error        = "full replica num not enough",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4671, full replica num not enough",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4671, full replica num not enough"
};
static const _error _error_OB_REPLICA_NUM_NOT_ENOUGH = {
      .error_name            = "OB_REPLICA_NUM_NOT_ENOUGH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "replica num not enough",
      .str_user_error        = "replica num not enough",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4672, replica num not enough",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4672, replica num not enough"
};
static const _error _error_OB_DATA_SOURCE_NOT_VALID = {
      .error_name            = "OB_DATA_SOURCE_NOT_VALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Data source not valid",
      .str_user_error        = "Data source not valid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4673, Data source not valid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4673, Data source not valid"
};
static const _error _error_OB_RUN_JOB_NOT_SUCCESS = {
      .error_name            = "OB_RUN_JOB_NOT_SUCCESS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "run job not success yet",
      .str_user_error        = "run job not success yet",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4674, run job not success yet",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4674, run job not success yet"
};
static const _error _error_OB_NO_NEED_REBUILD = {
      .error_name            = "OB_NO_NEED_REBUILD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no need to rebuild",
      .str_user_error        = "no need to rebuild",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4675, no need to rebuild",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4675, no need to rebuild"
};
static const _error _error_OB_NEED_REMOVE_UNNEED_TABLE = {
      .error_name            = "OB_NEED_REMOVE_UNNEED_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "need remove unneed table",
      .str_user_error        = "need remove unneed table",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4676, need remove unneed table",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4676, need remove unneed table"
};
static const _error _error_OB_NO_NEED_MERGE = {
      .error_name            = "OB_NO_NEED_MERGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no need to merge",
      .str_user_error        = "no need to merge",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4677, no need to merge",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4677, no need to merge"
};
static const _error _error_OB_CONFLICT_OPTION = {
      .error_name            = "OB_CONFLICT_OPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "conflicting specifications",
      .str_user_error        = "conflicting %.*s specifications",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4678, conflicting specifications",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4678, conflicting %.*s specifications"
};
static const _error _error_OB_DUPLICATE_OPTION = {
      .error_name            = "OB_DUPLICATE_OPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate specifications",
      .str_user_error        = "duplicate %.*s specifications",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4679, duplicate specifications",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4679, duplicate %.*s specifications"
};
static const _error _error_OB_INVALID_OPTION = {
      .error_name            = "OB_INVALID_OPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid specifications",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4680, invalid specifications",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4680, %s"
};
static const _error _error_OB_RPC_NEED_RECONNECT = {
      .error_name            = "OB_RPC_NEED_RECONNECT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "rpc need reconnect",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4681, rpc need reconnect",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4681, %s"
};
static const _error _error_OB_CANNOT_COPY_MAJOR_SSTABLE = {
      .error_name            = "OB_CANNOT_COPY_MAJOR_SSTABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot copy major sstable now",
      .str_user_error        = "cannot copy major sstable now",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4682, cannot copy major sstable now",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4682, cannot copy major sstable now"
};
static const _error _error_OB_SRC_DO_NOT_ALLOWED_MIGRATE = {
      .error_name            = "OB_SRC_DO_NOT_ALLOWED_MIGRATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "src do not allowed migrate",
      .str_user_error        = "src do not allowed migrate",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4683, src do not allowed migrate",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4683, src do not allowed migrate"
};
static const _error _error_OB_TOO_MANY_TENANT_PARTITIONS_ERROR = {
      .error_name            = "OB_TOO_MANY_TENANT_PARTITIONS_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Too many partitions were defined for this tenant",
      .str_user_error        = "Too many partitions were defined for this tenant",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4684, Too many partitions were defined for this tenant",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4684, Too many partitions were defined for this tenant"
};
static const _error _error_OB_ACTIVE_MEMTBALE_NOT_EXSIT = {
      .error_name            = "OB_ACTIVE_MEMTBALE_NOT_EXSIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "active memtable not exist",
      .str_user_error        = "active memtable not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4685, active memtable not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4685, active memtable not exist"
};
static const _error _error_OB_USE_DUP_FOLLOW_AFTER_DML = {
      .error_name            = "OB_USE_DUP_FOLLOW_AFTER_DML",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Should use leader replica for duplicate table after DML operator",
      .str_user_error        = "Should use leader replica for duplicate table after DML operator",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4686, Should use leader replica for duplicate table after DML operator",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4686, Should use leader replica for duplicate table after DML operator"
};
static const _error _error_OB_NO_DISK_NEED_REBUILD = {
      .error_name            = "OB_NO_DISK_NEED_REBUILD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no disk need rebuild",
      .str_user_error        = "no disk need rebuild",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4687, no disk need rebuild",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4687, no disk need rebuild"
};
static const _error _error_OB_STANDBY_READ_ONLY = {
      .error_name            = "OB_STANDBY_READ_ONLY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "standby tenant is read only",
      .str_user_error        = "standby tenant is read only",
      .oracle_errno          = 16000,
      .oracle_str_error      = "ORA-16000: standby tenant is read only",
      .oracle_str_user_error = "ORA-16000: standby tenant is read only"
};
static const _error _error_OB_INVALD_WEB_SERVICE_CONTENT = {
      .error_name            = "OB_INVALD_WEB_SERVICE_CONTENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "web service content not valid",
      .str_user_error        = "web service content not valid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4689, web service content not valid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4689, web service content not valid"
};
static const _error _error_OB_PRIMARY_CLUSTER_EXIST = {
      .error_name            = "OB_PRIMARY_CLUSTER_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "other primary cluster already exist, can not start as primary",
      .str_user_error        = "other primary cluster already exist, can not start as primary",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4690, other primary cluster already exist, can not start as primary",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4690, other primary cluster already exist, can not start as primary"
};
static const _error _error_OB_ARRAY_BINDING_SWITCH_ITERATOR = {
      .error_name            = "OB_ARRAY_BINDING_SWITCH_ITERATOR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "array binding needs to switch iterator",
      .str_user_error        = "array binding needs to switch iterator",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4691, array binding needs to switch iterator",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4691, array binding needs to switch iterator"
};
static const _error _error_OB_ERR_STANDBY_CLUSTER_NOT_EMPTY = {
      .error_name            = "OB_ERR_STANDBY_CLUSTER_NOT_EMPTY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "standby cluster not empty",
      .str_user_error        = "standby cluster not empty",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4692, standby cluster not empty",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4692, standby cluster not empty"
};
static const _error _error_OB_NOT_PRIMARY_CLUSTER = {
      .error_name            = "OB_NOT_PRIMARY_CLUSTER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not primary cluster",
      .str_user_error        = "not primary cluster",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4693, not primary cluster",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4693, not primary cluster"
};
static const _error _error_OB_ERR_CHECK_DROP_COLUMN_FAILED = {
      .error_name            = "OB_ERR_CHECK_DROP_COLUMN_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "check drop column failed",
      .str_user_error        = "check drop column failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4694, check drop column failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4694, check drop column failed"
};
static const _error _error_OB_NOT_STANDBY_CLUSTER = {
      .error_name            = "OB_NOT_STANDBY_CLUSTER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not standby cluster",
      .str_user_error        = "not standby cluster",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4695, not standby cluster",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4695, not standby cluster"
};
static const _error _error_OB_CLUSTER_VERSION_NOT_COMPATIBLE = {
      .error_name            = "OB_CLUSTER_VERSION_NOT_COMPATIBLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cluster version not compatible",
      .str_user_error        = "cluster version not compatible",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4696, cluster version not compatible",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4696, cluster version not compatible"
};
static const _error _error_OB_WAIT_TRANS_TABLE_MERGE_TIMEOUT = {
      .error_name            = "OB_WAIT_TRANS_TABLE_MERGE_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "wait trans table merge finish timeout",
      .str_user_error        = "wait trans table merge finish timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4697, wait trans table merge finish timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4697, wait trans table merge finish timeout"
};
static const _error _error_OB_SKIP_RENEW_LOCATION_BY_RPC = {
      .error_name            = "OB_SKIP_RENEW_LOCATION_BY_RPC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "skip renew location by rpc",
      .str_user_error        = "skip renew location by rpc",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4698, skip renew location by rpc",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4698, skip renew location by rpc"
};
static const _error _error_OB_RENEW_LOCATION_BY_RPC_FAILED = {
      .error_name            = "OB_RENEW_LOCATION_BY_RPC_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "renew location by rpc failed",
      .str_user_error        = "renew location by rpc failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4699, renew location by rpc failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4699, renew location by rpc failed"
};
static const _error _error_OB_CLUSTER_ID_NO_MATCH = {
      .error_name            = "OB_CLUSTER_ID_NO_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cluster id does not match",
      .str_user_error        = "cluster id does not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4700, cluster id does not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4700, cluster id does not match"
};
static const _error _error_OB_ERR_PARAM_INVALID = {
      .error_name            = "OB_ERR_PARAM_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "parameter cannot be modified because specified value is invalid",
      .str_user_error        = "parameter cannot be modified because specified value is invalid",
      .oracle_errno          = 2097,
      .oracle_str_error      = "ORA-02097: parameter cannot be modified because specified value is invalid",
      .oracle_str_user_error = "ORA-02097: parameter cannot be modified because specified value is invalid"
};
static const _error _error_OB_ERR_RES_OBJ_ALREADY_EXIST = {
      .error_name            = "OB_ERR_RES_OBJ_ALREADY_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "resource object already exists",
      .str_user_error        = "%s %.*s already exists",
      .oracle_errno          = 29357,
      .oracle_str_error      = "ORA-29357: resource object already exists",
      .oracle_str_user_error = "ORA-29357: %s %.*s already exists"
};
static const _error _error_OB_ERR_RES_PLAN_NOT_EXIST = {
      .error_name            = "OB_ERR_RES_PLAN_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "resource plan does not exist",
      .str_user_error        = "resource plan %.*s does not exist",
      .oracle_errno          = 29358,
      .oracle_str_error      = "ORA-29358: resource plan does not exist",
      .oracle_str_user_error = "ORA-29358: resource plan %.*s does not exist"
};
static const _error _error_OB_ERR_PERCENTAGE_OUT_OF_RANGE = {
      .error_name            = "OB_ERR_PERCENTAGE_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "value is outside valid range of 0 to 100",
      .str_user_error        = "value %ld for %s is outside valid range of 0 to 100",
      .oracle_errno          = 29361,
      .oracle_str_error      = "ORA-29361: value is outside valid range of 0 to 100",
      .oracle_str_user_error = "ORA-29361: value %ld for %s is outside valid range of 0 to 100"
};
static const _error _error_OB_ERR_PLAN_DIRECTIVE_NOT_EXIST = {
      .error_name            = "OB_ERR_PLAN_DIRECTIVE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "plan directive does not exist",
      .str_user_error        = "plan directive %.*s, %.*s does not exist",
      .oracle_errno          = 29362,
      .oracle_str_error      = "ORA-29362: plan directive does not exist",
      .oracle_str_user_error = "ORA-29362: plan directive %.*s, %.*s does not exist"
};
static const _error _error_OB_ERR_PLAN_DIRECTIVE_ALREADY_EXIST = {
      .error_name            = "OB_ERR_PLAN_DIRECTIVE_ALREADY_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "plan directive already exists",
      .str_user_error        = "plan directive %.*s, %.*s already exists",
      .oracle_errno          = 29364,
      .oracle_str_error      = "ORA-29364: plan directive already exists",
      .oracle_str_user_error = "ORA-29364: plan directive %.*s, %.*s already exists"
};
static const _error _error_OB_ERR_INVALID_PLAN_DIRECTIVE_NAME = {
      .error_name            = "OB_ERR_INVALID_PLAN_DIRECTIVE_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "plan directive name not supported.",
      .str_user_error        = "plan directive name '%.*s' not supported.",
      .oracle_errno          = 29366,
      .oracle_str_error      = "ORA-29366: plan directive name not supported.",
      .oracle_str_user_error = "ORA-29366: plan directive name '%.*s' not supported."
};
static const _error _error_OB_FAILOVER_NOT_ALLOW = {
      .error_name            = "OB_FAILOVER_NOT_ALLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Failover is not allowed",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4708, Failover is not allowed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4708, %s"
};
static const _error _error_OB_ADD_CLUSTER_NOT_ALLOWED = {
      .error_name            = "OB_ADD_CLUSTER_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Add cluster not allowed.",
      .str_user_error        = "Add cluster not allowed. Actions: %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4709, Add cluster not allowed.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4709, Add cluster not allowed. Actions: %s"
};
static const _error _error_OB_ERR_CONSUMER_GROUP_NOT_EXIST = {
      .error_name            = "OB_ERR_CONSUMER_GROUP_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "consumer group does not exist",
      .str_user_error        = "consumer group %.*s does not exist",
      .oracle_errno          = 29368,
      .oracle_str_error      = "ORA-29368: consumer group does not exist",
      .oracle_str_user_error = "ORA-29368: consumer group %.*s does not exist"
};
static const _error _error_OB_CLUSTER_NOT_ACCESSIBLE = {
      .error_name            = "OB_CLUSTER_NOT_ACCESSIBLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cluster is not accessible",
      .str_user_error        = "cluster is not accessible, cluster_id: %ld",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4711, cluster is not accessible",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4711, cluster is not accessible, cluster_id: %ld"
};
static const _error _error_OB_TENANT_RESOURCE_UNIT_EXIST = {
      .error_name            = "OB_TENANT_RESOURCE_UNIT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "tenant already has resource unit configured",
      .str_user_error        = "tenant already has resource unit configured, tenant_id: %ld, observer: \'%s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4712, tenant already has resource unit configured",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4712, tenant already has resource unit configured, tenant_id: %ld, observer: \'%s\'"
};
static const _error _error_OB_ERR_DROP_TRUNCATE_PARTITION_REBUILD_INDEX = {
      .error_name            = "OB_ERR_DROP_TRUNCATE_PARTITION_REBUILD_INDEX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "rebuild global index failed when drop/truncate partitions",
      .str_user_error        = "rebuild global index:'%.*s' failed when drop/truncate partitions",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4713, rebuild global index failed when drop/truncate partitions",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4713, rebuild global index:'%.*s' failed when drop/truncate partitions"
};
static const _error _error_OB_ERR_ATLER_TABLE_ILLEGAL_FK = {
      .error_name            = "OB_ERR_ATLER_TABLE_ILLEGAL_FK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unique/primary keys in table referenced by enabled foreign keys",
      .str_user_error        = "unique/primary keys in table referenced by enabled foreign keys",
      .oracle_errno          = 02266,
      .oracle_str_error      = "ORA-02266: unique/primary keys in table referenced by enabled foreign keys",
      .oracle_str_user_error = "ORA-02266: unique/primary keys in table referenced by enabled foreign keys"
};
static const _error _error_OB_ERR_NO_RESOURCE_MANAGER_PRIVILEGE = {
      .error_name            = "OB_ERR_NO_RESOURCE_MANAGER_PRIVILEGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "insufficient Resource Manager privileges",
      .str_user_error        = "insufficient Resource Manager privileges",
      .oracle_errno          = 56713,
      .oracle_str_error      = "ORA-56713: insufficient Resource Manager privileges",
      .oracle_str_user_error = "ORA-56713: insufficient Resource Manager privileges"
};
static const _error _error_OB_LEADER_COORDINATOR_NEED_RETRY = {
      .error_name            = "OB_LEADER_COORDINATOR_NEED_RETRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "leader coordinator needs retry",
      .str_user_error        = "leader coordinator needs retry",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4716, leader coordinator needs retry",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4716, leader coordinator needs retry"
};
static const _error _error_OB_REBALANCE_TASK_NEED_RETRY = {
      .error_name            = "OB_REBALANCE_TASK_NEED_RETRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "rebalance task needs retry",
      .str_user_error        = "rebalance task needs retry",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4717, rebalance task needs retry",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4717, rebalance task needs retry"
};
static const _error _error_OB_ERR_RES_MGR_PLAN_NOT_EXIST = {
      .error_name            = "OB_ERR_RES_MGR_PLAN_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "specified resource manager plan does not exist in the data dictionary",
      .str_user_error        = "specified resource manager plan does not exist in the data dictionary",
      .oracle_errno          = 7452,
      .oracle_str_error      = "ORA-07452: specified resource manager plan does not exist in the data dictionary",
      .oracle_str_user_error = "ORA-07452: specified resource manager plan does not exist in the data dictionary"
};
static const _error _error_OB_LS_NOT_EXIST = {
      .error_name            = "OB_LS_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log stream does not exist",
      .str_user_error        = "log stream does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4719, log stream does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4719, log stream does not exist"
};
static const _error _error_OB_TOO_MANY_TENANT_LS = {
      .error_name            = "OB_TOO_MANY_TENANT_LS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "too many log streams were defined for this tenant",
      .str_user_error        = "too many log streams were defined for this tenant",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4720, too many log streams were defined for this tenant",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4720, too many log streams were defined for this tenant"
};
static const _error _error_OB_LS_LOCATION_NOT_EXIST = {
      .error_name            = "OB_LS_LOCATION_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log stream location does not exist",
      .str_user_error        = "log stream location does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4721, log stream location does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4721, log stream location does not exist"
};
static const _error _error_OB_LS_LOCATION_LEADER_NOT_EXIST = {
      .error_name            = "OB_LS_LOCATION_LEADER_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log stream location leader does not exist",
      .str_user_error        = "log stream location leader does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4722, log stream location leader does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4722, log stream location leader does not exist"
};
static const _error _error_OB_MAPPING_BETWEEN_TABLET_AND_LS_NOT_EXIST = {
      .error_name            = "OB_MAPPING_BETWEEN_TABLET_AND_LS_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "mapping between tablet and log stream does not exist",
      .str_user_error        = "mapping between tablet and log stream does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4723, mapping between tablet and log stream does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4723, mapping between tablet and log stream does not exist"
};
static const _error _error_OB_TABLET_EXIST = {
      .error_name            = "OB_TABLET_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unexpected tablet existence",
      .str_user_error        = "unexpected tablet existence",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4724, unexpected tablet existence",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4724, unexpected tablet existence"
};
static const _error _error_OB_TABLET_NOT_EXIST = {
      .error_name            = "OB_TABLET_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "tablet does not exist",
      .str_user_error        = "tablet does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4725, tablet does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4725, tablet does not exist"
};
static const _error _error_OB_ERR_STANDBY_STATUS = {
      .error_name            = "OB_ERR_STANDBY_STATUS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "check standby cluster status",
      .str_user_error        = "check standby cluster status",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4726, check standby cluster status",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4726, check standby cluster status"
};
static const _error _error_OB_LS_NEED_REVOKE = {
      .error_name            = "OB_LS_NEED_REVOKE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ls need revoke",
      .str_user_error        = "ls need revoke",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4727, ls need revoke",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4727, ls need revoke"
};
static const _error _error_OB_ERR_INTERVAL_PARTITION_EXIST = {
      .error_name            = "OB_ERR_INTERVAL_PARTITION_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "interval partition already exists",
      .str_user_error        = "interval partition already exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4728, interval partition already exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4728, interval partition already exists"
};
static const _error _error_OB_ERR_INTERVAL_PARTITION_ERROR = {
      .error_name            = "OB_ERR_INTERVAL_PARTITION_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the property of interval partition is changed",
      .str_user_error        = "the property of interval partition is changed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4729, the property of interval partition is changed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4729, the property of interval partition is changed"
};
static const _error _error_OB_ERR_LAST_PARTITION_IN_THE_RANGE_SECTION_CANNOT_BE_DROPPED = {
      .error_name            = "OB_ERR_LAST_PARTITION_IN_THE_RANGE_SECTION_CANNOT_BE_DROPPED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Last partition in the range section cannot be dropped",
      .str_user_error        = "Last partition in the range section cannot be dropped",
      .oracle_errno          = 14758,
      .oracle_str_error      = "ORA-14758: Last partition in the range section cannot be dropped",
      .oracle_str_user_error = "ORA-14758: Last partition in the range section cannot be dropped"
};
static const _error _error_OB_ERR_SET_INTERVAL_IS_NOT_LEGAL_ON_THIS_TABLE = {
      .error_name            = "OB_ERR_SET_INTERVAL_IS_NOT_LEGAL_ON_THIS_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "SET INTERVAL is not legal on this table.",
      .str_user_error        = "SET INTERVAL is not legal on this table.",
      .oracle_errno          = 14759,
      .oracle_str_error      = "ORA-14759: SET INTERVAL is not legal on this table.",
      .oracle_str_user_error = "ORA-14759: SET INTERVAL is not legal on this table."
};
static const _error _error_OB_CHECK_CLUSTER_STATUS = {
      .error_name            = "OB_CHECK_CLUSTER_STATUS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "check cluster status",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4732, check cluster status",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4732, %s"
};
static const _error _error_OB_ZONE_RESOURCE_NOT_ENOUGH = {
      .error_name            = "OB_ZONE_RESOURCE_NOT_ENOUGH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "zone resource is not enough to hold new units",
      .str_user_error        = "zone '%s' resource not enough to hold %ld unit. You can check resource info by views: DBA_OB_UNITS, GV$OB_UNITS, GV$OB_SERVERS.\n%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4733, zone resource is not enough to hold new units",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4733, zone '%s' resource not enough to hold %ld unit. You can check resource info by views: DBA_OB_UNITS, GV$OB_UNITS, GV$OB_SERVERS.\n%s"
};
static const _error _error_OB_ZONE_SERVER_NOT_ENOUGH = {
      .error_name            = "OB_ZONE_SERVER_NOT_ENOUGH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "zone server not enough to hold all units",
      .str_user_error        = "zone '%s' server not enough to hold %ld new unit, please check zone valid servers",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4734, zone server not enough to hold all units",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4734, zone '%s' server not enough to hold %ld new unit, please check zone valid servers"
};
static const _error _error_OB_SSTABLE_NOT_EXIST = {
      .error_name            = "OB_SSTABLE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "sstable not exist",
      .str_user_error        = "sstable not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4735, sstable not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4735, sstable not exist"
};
static const _error _error_OB_RESOURCE_UNIT_VALUE_INVALID = {
      .error_name            = "OB_RESOURCE_UNIT_VALUE_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "resource unit value is invalid",
      .str_user_error        = "resource unit value is invalid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4736, resource unit value is invalid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4736, resource unit value is invalid"
};
static const _error _error_OB_LS_EXIST = {
      .error_name            = "OB_LS_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log stream already exist",
      .str_user_error        = "log stream already exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4737, log stream already exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4737, log stream already exist"
};
static const _error _error_OB_DEVICE_EXIST = {
      .error_name            = "OB_DEVICE_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Unexpected device existence",
      .str_user_error        = "Unexpected device existence",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4738, Unexpected device existence",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4738, Unexpected device existence"
};
static const _error _error_OB_DEVICE_NOT_EXIST = {
      .error_name            = "OB_DEVICE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Device does not exist",
      .str_user_error        = "Device does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4739, Device does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4739, Device does not exist"
};
static const _error _error_OB_LS_REPLICA_TASK_RESULT_UNCERTAIN = {
      .error_name            = "OB_LS_REPLICA_TASK_RESULT_UNCERTAIN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log stream replica task result is uncertain",
      .str_user_error        = "log stream replica task result is uncertain",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4740, log stream replica task result is uncertain",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4740, log stream replica task result is uncertain"
};
static const _error _error_OB_WAIT_REPLAY_TIMEOUT = {
      .error_name            = "OB_WAIT_REPLAY_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log stream wait log replay timeout",
      .str_user_error        = "log stream wait log replay timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4741, log stream wait log replay timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4741, log stream wait log replay timeout"
};
static const _error _error_OB_WAIT_TABLET_READY_TIMEOUT = {
      .error_name            = "OB_WAIT_TABLET_READY_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log stream wait tablet ready timeout",
      .str_user_error        = "log stream wait tablet ready timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4742, log stream wait tablet ready timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4742, log stream wait tablet ready timeout"
};
static const _error _error_OB_FREEZE_SERVICE_EPOCH_MISMATCH = {
      .error_name            = "OB_FREEZE_SERVICE_EPOCH_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "freeze service epoch is not expected",
      .str_user_error        = "freeze service epoch is not expected",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4743, freeze service epoch is not expected",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4743, freeze service epoch is not expected"
};
static const _error _error_OB_FROZEN_INFO_ALREADY_EXIST = {
      .error_name            = "OB_FROZEN_INFO_ALREADY_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "already exist larger frozen_scn in __all_freeze_info",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4744, already exist larger frozen_scn in __all_freeze_info",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4744, %s"
};
static const _error _error_OB_DELETE_SERVER_NOT_ALLOWED = {
      .error_name            = "OB_DELETE_SERVER_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "delete server not allowed",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4745, delete server not allowed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4745, %s"
};
static const _error _error_OB_PACKET_STATUS_UNKNOWN = {
      .error_name            = "OB_PACKET_STATUS_UNKNOWN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Network error and packet status unknown. Abort auto retry.",
      .str_user_error        = "Network error and packet status unknown. Abort auto retry.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4746, Network error and packet status unknown. Abort auto retry.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4746, Network error and packet status unknown. Abort auto retry."
};
static const _error _error_OB_ARBITRATION_SERVICE_NOT_EXIST = {
      .error_name            = "OB_ARBITRATION_SERVICE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "arbitration service does not exist",
      .str_user_error        = "arbitration service does not exist, %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4747, arbitration service does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4747, arbitration service does not exist, %s"
};
static const _error _error_OB_ARBITRATION_SERVICE_ALREADY_EXIST = {
      .error_name            = "OB_ARBITRATION_SERVICE_ALREADY_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "arbitration service already exist",
      .str_user_error        = "arbitration service already exist, %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4748, arbitration service already exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4748, arbitration service already exist, %s"
};
static const _error _error_OB_UNEXPECTED_TABLET_STATUS = {
      .error_name            = "OB_UNEXPECTED_TABLET_STATUS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unexpected tablet status",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4749, unexpected tablet status",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4749, %s"
};
static const _error _error_OB_INVALID_TABLE_STORE = {
      .error_name            = "OB_INVALID_TABLE_STORE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid table store",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4750, invalid table store",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4750, %s"
};
static const _error _error_OB_WAIT_DEGRATION_TIMEOUT = {
      .error_name            = "OB_WAIT_DEGRATION_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "wait degration finished timeout",
      .str_user_error        = "wait degration finished timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4751, wait degration finished timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4751, wait degration finished timeout"
};
static const _error _error_OB_ERR_ROOTSERVICE_START = {
      .error_name            = "OB_ERR_ROOTSERVICE_START",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "rootservice start process has failure",
      .str_user_error        = "rootservice start process has failure",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4752, rootservice start process has failure",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4752, rootservice start process has failure"
};
static const _error _error_OB_ERR_ROOTSERVICE_STOP = {
      .error_name            = "OB_ERR_ROOTSERVICE_STOP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "rootservice stop process has failure",
      .str_user_error        = "rootservice stop process has failure",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4753, rootservice stop process has failure",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4753, rootservice stop process has failure"
};
static const _error _error_OB_ERR_ROOT_INSPECTION = {
      .error_name            = "OB_ERR_ROOT_INSPECTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "root inspection is not passed",
      .str_user_error        = "root inspection is not passed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4754, root inspection is not passed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4754, root inspection is not passed"
};
static const _error _error_OB_ERR_ROOTSERVICE_THREAD_HUNG = {
      .error_name            = "OB_ERR_ROOTSERVICE_THREAD_HUNG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "rootservice background thread may be hung",
      .str_user_error        = "rootservice background thread may be hung",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4755, rootservice background thread may be hung",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4755, rootservice background thread may be hung"
};
static const _error _error_OB_MIGRATE_NOT_COMPATIBLE = {
      .error_name            = "OB_MIGRATE_NOT_COMPATIBLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Migration src and dest version is not compatible.",
      .str_user_error        = "Migration src and dest version is not compatible.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4756, Migration src and dest version is not compatible.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4756, Migration src and dest version is not compatible."
};
static const _error _error_OB_CLUSTER_INFO_MAYBE_REMAINED = {
      .error_name            = "OB_CLUSTER_INFO_MAYBE_REMAINED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Cluster info may remain on arbitration server '%.*s', please make sure whether to use ob_admin to clean it.",
      .str_user_error        = "Cluster info may remain on arbitration server '%.*s', please make sure whether to use ob_admin to clean it.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4757, Cluster info may remain on arbitration server '%.*s', please make sure whether to use ob_admin to clean it.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4757, Cluster info may remain on arbitration server '%.*s', please make sure whether to use ob_admin to clean it."
};
static const _error _error_OB_ARBITRATION_INFO_QUERY_FAILED = {
      .error_name            = "OB_ARBITRATION_INFO_QUERY_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the arbitration service may be unavailable, please check and retry",
      .str_user_error        = "the arbitration service may be unavailable, please check and retry",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4758, the arbitration service may be unavailable, please check and retry",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4758, the arbitration service may be unavailable, please check and retry"
};
static const _error _error_OB_IGNORE_ERR_ACCESS_VIRTUAL_TABLE = {
      .error_name            = "OB_IGNORE_ERR_ACCESS_VIRTUAL_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "An error was ignored when accessing virtual table, actual error code: %d",
      .str_user_error        = "An error was ignored when accessing virtual table, actual error code: %d",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4759, An error was ignored when accessing virtual table, actual error code: %d",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4759, An error was ignored when accessing virtual table, actual error code: %d"
};
static const _error _error_OB_LS_OFFLINE = {
      .error_name            = "OB_LS_OFFLINE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log stream is offline",
      .str_user_error        = "log stream is offline",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4760, log stream is offline",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4760, log stream is offline"
};
static const _error _error_OB_LS_IS_DELETED = {
      .error_name            = "OB_LS_IS_DELETED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log stream is deleted",
      .str_user_error        = "log stream is deleted",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4761, log stream is deleted",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4761, log stream is deleted"
};
static const _error _error_OB_SKIP_CHECKING_LS_STATUS = {
      .error_name            = "OB_SKIP_CHECKING_LS_STATUS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "This operation has been finished without checking ls status",
      .str_user_error        = "This operation has been finished without checking ls status",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4762, This operation has been finished without checking ls status",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4762, This operation has been finished without checking ls status"
};
static const _error _error_OB_ERR_USE_ROWID_FOR_UPDATE = {
      .error_name            = "OB_ERR_USE_ROWID_FOR_UPDATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid user.table.column, table.column, or column specification",
      .str_user_error        = "invalid user.table.column, table.column, or column specification",
      .oracle_errno          = 1747,
      .oracle_str_error      = "ORA-01747: invalid user.table.column, table.column, or column specification",
      .oracle_str_user_error = "ORA-01747: invalid user.table.column, table.column, or column specification"
};
static const _error _error_OB_ERR_UNKNOWN_SET_OPTION = {
      .error_name            = "OB_ERR_UNKNOWN_SET_OPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unknown SET option",
      .str_user_error        = "unknown SET option \'%s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: unknown SET option",
      .oracle_str_user_error = "ORA-00600: unknown SET option \'%s\'"
};
static const _error _error_OB_CREATE_STANDBY_TENANT_FAILED = {
      .error_name            = "OB_CREATE_STANDBY_TENANT_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "create standby tenant may fail",
      .str_user_error        = "create standby tenant may fail, %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4765, create standby tenant may fail",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4765, create standby tenant may fail, %s"
};
static const _error _error_OB_LS_WAITING_SAFE_DESTROY = {
      .error_name            = "OB_LS_WAITING_SAFE_DESTROY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ls waiting safe destory",
      .str_user_error        = "ls waiting safe destory, %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4766, ls waiting safe destory",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4766, ls waiting safe destory, %s"
};
static const _error _error_OB_LS_NOT_LEADER = {
      .error_name            = "OB_LS_NOT_LEADER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log stream is not leader log stream",
      .str_user_error        = "log stream is not leader log stream",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4767, log stream is not leader log stream",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4767, log stream is not leader log stream"
};
static const _error _error_OB_LS_LOCK_CONFLICT = {
      .error_name            = "OB_LS_LOCK_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ls lock conflict",
      .str_user_error        = "ls lock conflict, %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4768, ls lock conflict",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4768, ls lock conflict, %s"
};
static const _error _error_OB_INVALID_ROOT_KEY = {
      .error_name            = "OB_INVALID_ROOT_KEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid root key",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4769, invalid root key",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4769, %s"
};
static const _error _error_OB_CONFLICT_WITH_CLONE = {
      .error_name            = "OB_CONFLICT_WITH_CLONE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "conflict case with clone operation",
      .str_user_error        = "Tenant (%ld) is in %s procedure, %s not allowed now",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4770, conflict case with clone operation",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4770, Tenant (%ld) is in %s procedure, %s not allowed now"
};
static const _error _error_OB_BREAK_BY_TEST = {
      .error_name            = "OB_BREAK_BY_TEST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "process is breaked by test case",
      .str_user_error        = "process is breaked by test case",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -4771, process is breaked by test case",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4771, process is breaked by test case"
};
static const _error _error_OB_ERR_PARSER_INIT = {
      .error_name            = "OB_ERR_PARSER_INIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PARSE_ERROR,
      .sqlstate              = "0B000",
      .str_error             = "Failed to init SQL parser",
      .str_user_error        = "Failed to init SQL parser",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5000, Failed to init SQL parser",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5000, Failed to init SQL parser"
};
static const _error _error_OB_ERR_PARSE_SQL = {
      .error_name            = "OB_ERR_PARSE_SQL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PARSE_ERROR,
      .sqlstate              = "42000",
      .str_error             = "Parse error",
      .str_user_error        = "%s near \'%.*s\' at line %d",
      .oracle_errno          = 900,
      .oracle_str_error      = "ORA-00900: invalid SQL statement",
      .oracle_str_user_error = "ORA-00900: %s near \'%.*s\' at line %d"
};
static const _error _error_OB_ERR_RESOLVE_SQL = {
      .error_name            = "OB_ERR_RESOLVE_SQL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Resolve error",
      .str_user_error        = "Resolve error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5002, Resolve error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5002, Resolve error"
};
static const _error _error_OB_ERR_GEN_PLAN = {
      .error_name            = "OB_ERR_GEN_PLAN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Generate plan error",
      .str_user_error        = "Generate plan error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5003, Generate plan error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5003, Generate plan error"
};
static const _error _error_OB_ERR_PARSER_SYNTAX = {
      .error_name            = "OB_ERR_PARSER_SYNTAX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SYNTAX_ERROR,
      .sqlstate              = "42000",
      .str_error             = "You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use",
      .str_user_error        = "You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use",
      .oracle_errno          = 900,
      .oracle_str_error      = "ORA-00900: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use",
      .oracle_str_user_error = "ORA-00900: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use"
};
static const _error _error_OB_ERR_COLUMN_SIZE = {
      .error_name            = "OB_ERR_COLUMN_SIZE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT,
      .sqlstate              = "21000",
      .str_error             = "The used SELECT statements have a different number of columns",
      .str_user_error        = "The used SELECT statements have a different number of columns",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5007, The used SELECT statements have a different number of columns",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5007, The used SELECT statements have a different number of columns"
};
static const _error _error_OB_ERR_COLUMN_DUPLICATE = {
      .error_name            = "OB_ERR_COLUMN_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DUP_FIELDNAME,
      .sqlstate              = "42S21",
      .str_error             = "Duplicate column name",
      .str_user_error        = "Duplicate column name '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5008, Duplicate column name",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5008, Duplicate column name '%.*s'"
};
static const _error _error_OB_ERR_OPERATOR_UNKNOWN = {
      .error_name            = "OB_ERR_OPERATOR_UNKNOWN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "21000",
      .str_error             = "Unknown operator",
      .str_user_error        = "Unknown operator",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5010, Unknown operator",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5010, Unknown operator"
};
static const _error _error_OB_ERR_STAR_DUPLICATE = {
      .error_name            = "OB_ERR_STAR_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Duplicated star",
      .str_user_error        = "Duplicated star",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5011, Duplicated star",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5011, Duplicated star"
};
static const _error _error_OB_ERR_ILLEGAL_ID = {
      .error_name            = "OB_ERR_ILLEGAL_ID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Illegal ID",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5012, Illegal ID",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5012, %s"
};
static const _error _error_OB_ERR_ILLEGAL_VALUE = {
      .error_name            = "OB_ERR_ILLEGAL_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Illegal value",
      .str_user_error        = "Illegal value",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5014, Illegal value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5014, Illegal value"
};
static const _error _error_OB_ERR_COLUMN_AMBIGUOUS = {
      .error_name            = "OB_ERR_COLUMN_AMBIGUOUS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_AMBIGUOUS_FIELD_TERM,
      .sqlstate              = "42000",
      .str_error             = "Ambiguous column",
      .str_user_error        = "Ambiguous column",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5015, Ambiguous column",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5015, Ambiguous column"
};
static const _error _error_OB_ERR_LOGICAL_PLAN_FAILD = {
      .error_name            = "OB_ERR_LOGICAL_PLAN_FAILD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Generate logical plan error",
      .str_user_error        = "Generate logical plan error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5016, Generate logical plan error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5016, Generate logical plan error"
};
static const _error _error_OB_ERR_SCHEMA_UNSET = {
      .error_name            = "OB_ERR_SCHEMA_UNSET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Schema not set",
      .str_user_error        = "Schema not set",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5017, Schema not set",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5017, Schema not set"
};
static const _error _error_OB_ERR_ILLEGAL_NAME = {
      .error_name            = "OB_ERR_ILLEGAL_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Illegal name",
      .str_user_error        = "Illegal name",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5018, Illegal name",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5018, Illegal name"
};
static const _error _error_OB_TABLE_NOT_EXIST = {
      .error_name            = "OB_TABLE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NO_SUCH_TABLE,
      .sqlstate              = "42S02",
      .str_error             = "Table doesn\'t exist",
      .str_user_error        = "Table \'%s.%s\' doesn\'t exist",
      .oracle_errno          = 942,
      .oracle_str_error      = "ORA-00942: table or view does not exist",
      .oracle_str_user_error = "ORA-00942: table or view \'%s.%s\' does not exist"
};
static const _error _error_OB_ERR_TABLE_EXIST = {
      .error_name            = "OB_ERR_TABLE_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TABLE_EXISTS_ERROR,
      .sqlstate              = "42S01",
      .str_error             = "Table already exists",
      .str_user_error        = "Table '%.*s' already exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5020, Table already exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5020, Table '%.*s' already exists"
};
static const _error _error_OB_ERR_EXPR_UNKNOWN = {
      .error_name            = "OB_ERR_EXPR_UNKNOWN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Unknown expression",
      .str_user_error        = "Unknown expression",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5022, Unknown expression",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5022, Unknown expression"
};
static const _error _error_OB_ERR_ILLEGAL_TYPE = {
      .error_name            = "OB_ERR_ILLEGAL_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "S1004",
      .str_error             = "Illegal type",
      .str_user_error        = "unsupport MySQL type %d. Maybe you should use java.sql.Timestamp instead of java.util.Date.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5023, Illegal type",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5023, unsupport MySQL type %d. Maybe you should use java.sql.Timestamp instead of java.util.Date."
};
static const _error _error_OB_ERR_PRIMARY_KEY_DUPLICATE = {
      .error_name            = "OB_ERR_PRIMARY_KEY_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DUP_ENTRY,
      .sqlstate              = "23000",
      .str_error             = "Duplicated primary key",
      .str_user_error        = "Duplicate entry \'%s\' for key \'%.*s\'",
      .oracle_errno          = 1,
      .oracle_str_error      = "ORA-00001: unique constraint violated",
      .oracle_str_user_error = "ORA-00001: unique constraint \'%s\' for key \'%.*s\' violated"
};
static const _error _error_OB_ERR_KEY_NAME_DUPLICATE = {
      .error_name            = "OB_ERR_KEY_NAME_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DUP_KEYNAME,
      .sqlstate              = "42000",
      .str_error             = "Duplicated key name",
      .str_user_error        = "Duplicate key name \'%.*s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5025, Duplicated key name",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5025, Duplicate key name \'%.*s\'"
};
static const _error _error_OB_ERR_CREATETIME_DUPLICATE = {
      .error_name            = "OB_ERR_CREATETIME_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Duplicated createtime",
      .str_user_error        = "Duplicated createtime",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5026, Duplicated createtime",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5026, Duplicated createtime"
};
static const _error _error_OB_ERR_MODIFYTIME_DUPLICATE = {
      .error_name            = "OB_ERR_MODIFYTIME_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Duplicated modifytime",
      .str_user_error        = "Duplicated modifytime",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5027, Duplicated modifytime",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5027, Duplicated modifytime"
};
static const _error _error_OB_ERR_ILLEGAL_INDEX = {
      .error_name            = "OB_ERR_ILLEGAL_INDEX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NO_SUCH_INDEX,
      .sqlstate              = "42S12",
      .str_error             = "Illegal index",
      .str_user_error        = "Illegal index",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5028, Illegal index",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5028, Illegal index"
};
static const _error _error_OB_ERR_INVALID_SCHEMA = {
      .error_name            = "OB_ERR_INVALID_SCHEMA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid schema",
      .str_user_error        = "Invalid schema",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5029, Invalid schema",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5029, Invalid schema"
};
static const _error _error_OB_ERR_INSERT_NULL_ROWKEY = {
      .error_name            = "OB_ERR_INSERT_NULL_ROWKEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PRIMARY_CANT_HAVE_NULL,
      .sqlstate              = "42000",
      .str_error             = "Insert null rowkey",
      .str_user_error        = "Insert null into %.*s",
      .oracle_errno          = 1400,
      .oracle_str_error      = "ORA-01400: cannot insert NULL into",
      .oracle_str_user_error = "ORA-01400: cannot insert NULL into (%.*s)"
};
static const _error _error_OB_ERR_COLUMN_NOT_FOUND = {
      .error_name            = "OB_ERR_COLUMN_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Column not found",
      .str_user_error        = "Column not found",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5031, Column not found",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5031, Column not found"
};
static const _error _error_OB_ERR_DELETE_NULL_ROWKEY = {
      .error_name            = "OB_ERR_DELETE_NULL_ROWKEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "23000",
      .str_error             = "Delete null rowkey",
      .str_user_error        = "Delete null rowkey",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5032, Delete null rowkey",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5032, Delete null rowkey"
};
static const _error _error_OB_ERR_USER_EMPTY = {
      .error_name            = "OB_ERR_USER_EMPTY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "01007",
      .str_error             = "No user",
      .str_user_error        = "No user",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5034, No user",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5034, No user"
};
static const _error _error_OB_ERR_USER_NOT_EXIST = {
      .error_name            = "OB_ERR_USER_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NO_SUCH_USER,
      .sqlstate              = "HY000",
      .str_error             = "User not exist",
      .str_user_error        = "User not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5035, User not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5035, User not exist"
};
static const _error _error_OB_ERR_NO_PRIVILEGE = {
      .error_name            = "OB_ERR_NO_PRIVILEGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SPECIFIC_ACCESS_DENIED_ERROR,
      .sqlstate              = "42501",
      .str_error             = "Access denied",
      .str_user_error        = "Access denied; you need (at least one of) the %s privilege(s) for this operation",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5036, Access denied",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5036, Access denied; you need (at least one of) the %s privilege(s) for this operation"
};
static const _error _error_OB_ERR_NO_AVAILABLE_PRIVILEGE_ENTRY = {
      .error_name            = "OB_ERR_NO_AVAILABLE_PRIVILEGE_ENTRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "No privilege entry",
      .str_user_error        = "No privilege entry",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5037, No privilege entry",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5037, No privilege entry"
};
static const _error _error_OB_ERR_WRONG_PASSWORD = {
      .error_name            = "OB_ERR_WRONG_PASSWORD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PASSWORD_NO_MATCH,
      .sqlstate              = "42000",
      .str_error             = "Incorrect password",
      .str_user_error        = "Incorrect password",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5038, Incorrect password",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5038, Incorrect password"
};
static const _error _error_OB_ERR_USER_IS_LOCKED = {
      .error_name            = "OB_ERR_USER_IS_LOCKED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_ACCOUNT_HAS_BEEN_LOCKED,
      .sqlstate              = "HY000",
      .str_error             = "User locked",
      .str_user_error        = "User locked",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5039, User locked",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5039, User locked"
};
static const _error _error_OB_ERR_UPDATE_ROWKEY_COLUMN = {
      .error_name            = "OB_ERR_UPDATE_ROWKEY_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Can not update rowkey column",
      .str_user_error        = "Can not update rowkey column",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5040, Can not update rowkey column",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5040, Can not update rowkey column"
};
static const _error _error_OB_ERR_UPDATE_JOIN_COLUMN = {
      .error_name            = "OB_ERR_UPDATE_JOIN_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Can not update join column",
      .str_user_error        = "Can not update join column",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5041, Can not update join column",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5041, Can not update join column"
};
static const _error _error_OB_ERR_INVALID_COLUMN_NUM = {
      .error_name            = "OB_ERR_INVALID_COLUMN_NUM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_OPERAND_COLUMNS,
      .sqlstate              = "21000",
      .str_error             = "Invalid column number",
      .str_user_error        = "Operand should contain %ld column(s)",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5042, Invalid column number",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5042, Operand should contain %ld column(s)"
};
static const _error _error_OB_ERR_PREPARE_STMT_NOT_FOUND = {
      .error_name            = "OB_ERR_PREPARE_STMT_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNKNOWN_STMT_HANDLER,
      .sqlstate              = "HY007",
      .str_error             = "Unknown prepared statement",
      .str_user_error        = "statement not prepared, stmt_id=%u",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5043, Unknown prepared statement",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5043, statement not prepared, stmt_id=%u"
};
static const _error _error_OB_ERR_SYS_VARIABLE_UNKNOWN = {
      .error_name            = "OB_ERR_SYS_VARIABLE_UNKNOWN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNKNOWN_SYSTEM_VARIABLE,
      .sqlstate              = "HY000",
      .str_error             = "Unknown system variable",
      .str_user_error        = "Unknown system variable '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5044, Unknown system variable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5044, Unknown system variable '%.*s'"
};
static const _error _error_OB_ERR_OLDER_PRIVILEGE_VERSION = {
      .error_name            = "OB_ERR_OLDER_PRIVILEGE_VERSION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Older privilege version",
      .str_user_error        = "Older privilege version",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5046, Older privilege version",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5046, Older privilege version"
};
static const _error _error_OB_ERR_LACK_OF_ROWKEY_COL = {
      .error_name            = "OB_ERR_LACK_OF_ROWKEY_COL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_REQUIRES_PRIMARY_KEY,
      .sqlstate              = "42000",
      .str_error             = "No rowkey column specified",
      .str_user_error        = "Primary key column(s) not specified in the WHERE clause",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5047, No rowkey column specified",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5047, Primary key column(s) not specified in the WHERE clause"
};
static const _error _error_OB_ERR_USER_EXIST = {
      .error_name            = "OB_ERR_USER_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42710",
      .str_error             = "User exists",
      .str_user_error        = "User exists",
      .oracle_errno          = 1920,
      .oracle_str_error      = "ORA-01920: user name conflicts with another user or role name",
      .oracle_str_user_error = "ORA-01920: user name conflicts with another user or role name"
};
static const _error _error_OB_ERR_PASSWORD_EMPTY = {
      .error_name            = "OB_ERR_PASSWORD_EMPTY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Empty password",
      .str_user_error        = "Empty password",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5051, Empty password",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5051, Empty password"
};
static const _error _error_OB_ERR_GRANT_PRIVILEGES_TO_CREATE_TABLE = {
      .error_name            = "OB_ERR_GRANT_PRIVILEGES_TO_CREATE_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Failed to grant privelege",
      .str_user_error        = "Failed to grant privelege",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5052, Failed to grant privelege",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5052, Failed to grant privelege"
};
static const _error _error_OB_ERR_WRONG_DYNAMIC_PARAM = {
      .error_name            = "OB_ERR_WRONG_DYNAMIC_PARAM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY093",
      .str_error             = "Wrong dynamic parameters",
      .str_user_error        = "Incorrect arguments number to EXECUTE, need %ld arguments but give %ld",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5053, Wrong dynamic parameters",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5053, Incorrect arguments number to EXECUTE, need %ld arguments but give %ld"
};
static const _error _error_OB_ERR_PARAM_SIZE = {
      .error_name            = "OB_ERR_PARAM_SIZE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT,
      .sqlstate              = "42000",
      .str_error             = "Incorrect parameter count",
      .str_user_error        = "Incorrect parameter count in the call to native function '%.*s'",
      .oracle_errno          = 909,
      .oracle_str_error      = "ORA-00909: invalid number of arguments",
      .oracle_str_user_error = "ORA-00909: invalid number of arguments in the call to native function '%.*s'"
};
static const _error _error_OB_ERR_FUNCTION_UNKNOWN = {
      .error_name            = "OB_ERR_FUNCTION_UNKNOWN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_DOES_NOT_EXIST,
      .sqlstate              = "42000",
      .str_error             = "FUNCTION does not exist",
      .str_user_error        = "%s %.*s does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5055, FUNCTION does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5055, %s %.*s does not exist"
};
static const _error _error_OB_ERR_CREAT_MODIFY_TIME_COLUMN = {
      .error_name            = "OB_ERR_CREAT_MODIFY_TIME_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "23000",
      .str_error             = "CreateTime or ModifyTime column cannot be modified",
      .str_user_error        = "CreateTime or ModifyTime column cannot be modified",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5056, CreateTime or ModifyTime column cannot be modified",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5056, CreateTime or ModifyTime column cannot be modified"
};
static const _error _error_OB_ERR_MODIFY_PRIMARY_KEY = {
      .error_name            = "OB_ERR_MODIFY_PRIMARY_KEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "23000",
      .str_error             = "Primary key cannot be modified",
      .str_user_error        = "Primary key cannot be modified",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5057, Primary key cannot be modified",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5057, Primary key cannot be modified"
};
static const _error _error_OB_ERR_PARAM_DUPLICATE = {
      .error_name            = "OB_ERR_PARAM_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Duplicated parameters",
      .str_user_error        = "Duplicated parameters",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5058, Duplicated parameters",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5058, Duplicated parameters"
};
static const _error _error_OB_ERR_TOO_MANY_SESSIONS = {
      .error_name            = "OB_ERR_TOO_MANY_SESSIONS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_MANY_USER_CONNECTIONS,
      .sqlstate              = "42000",
      .str_error             = "Too many sessions",
      .str_user_error        = "Too many sessions",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5059, Too many sessions",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5059, Too many sessions"
};
static const _error _error_OB_ERR_TOO_MANY_PS = {
      .error_name            = "OB_ERR_TOO_MANY_PS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "54023",
      .str_error             = "Too many prepared statements",
      .str_user_error        = "Too many prepared statements",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5061, Too many prepared statements",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5061, Too many prepared statements"
};
static const _error _error_OB_ERR_HINT_UNKNOWN = {
      .error_name            = "OB_ERR_HINT_UNKNOWN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Unknown hint",
      .str_user_error        = "Unknown hint",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5063, Unknown hint",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5063, Unknown hint"
};
static const _error _error_OB_ERR_WHEN_UNSATISFIED = {
      .error_name            = "OB_ERR_WHEN_UNSATISFIED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "23000",
      .str_error             = "When condition not satisfied",
      .str_user_error        = "When condition not satisfied",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5064, When condition not satisfied",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5064, When condition not satisfied"
};
static const _error _error_OB_ERR_QUERY_INTERRUPTED = {
      .error_name            = "OB_ERR_QUERY_INTERRUPTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_QUERY_INTERRUPTED,
      .sqlstate              = "70100",
      .str_error             = "Query execution was interrupted",
      .str_user_error        = "Query execution was interrupted",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5065, Query execution was interrupted",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5065, Query execution was interrupted"
};
static const _error _error_OB_ERR_SESSION_INTERRUPTED = {
      .error_name            = "OB_ERR_SESSION_INTERRUPTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Session interrupted",
      .str_user_error        = "Session interrupted",
      .oracle_errno          = 1092,
      .oracle_str_error      = "ORA-01092: OceanBase instance terminated. Disconnection forced",
      .oracle_str_user_error = "ORA-01092: OceanBase instance terminated. Disconnection forced"
};
static const _error _error_OB_ERR_UNKNOWN_SESSION_ID = {
      .error_name            = "OB_ERR_UNKNOWN_SESSION_ID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Unknown session ID",
      .str_user_error        = "Unknown session ID",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5067, Unknown session ID",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5067, Unknown session ID"
};
static const _error _error_OB_ERR_PROTOCOL_NOT_RECOGNIZE = {
      .error_name            = "OB_ERR_PROTOCOL_NOT_RECOGNIZE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect protocol",
      .str_user_error        = "Incorrect protocol",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5068, Incorrect protocol",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5068, Incorrect protocol"
};
static const _error _error_OB_ERR_WRITE_AUTH_ERROR = {
      .error_name            = "OB_ERR_WRITE_AUTH_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Write auth packet error",
      .str_user_error        = "Write auth packet error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5069, Write auth packet error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5069, Write auth packet error"
};
static const _error _error_OB_ERR_PARSE_JOIN_INFO = {
      .error_name            = "OB_ERR_PARSE_JOIN_INFO",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Wrong join info",
      .str_user_error        = "Wrong join info",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5070, Wrong join info",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5070, Wrong join info"
};
static const _error _error_OB_ERR_ALTER_INDEX_COLUMN = {
      .error_name            = "OB_ERR_ALTER_INDEX_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Cannot alter index column",
      .str_user_error        = "Cannot alter index column",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5071, Cannot alter index column",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5071, Cannot alter index column"
};
static const _error _error_OB_ERR_MODIFY_INDEX_TABLE = {
      .error_name            = "OB_ERR_MODIFY_INDEX_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Cannot modify index table",
      .str_user_error        = "Cannot modify index table",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5072, Cannot modify index table",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5072, Cannot modify index table"
};
static const _error _error_OB_ERR_INDEX_UNAVAILABLE = {
      .error_name            = "OB_ERR_INDEX_UNAVAILABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NO_SUCH_INDEX,
      .sqlstate              = "42000",
      .str_error             = "Index unavailable",
      .str_user_error        = "Index unavailable",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5073, Index unavailable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5073, Index unavailable"
};
static const _error _error_OB_ERR_NOP_VALUE = {
      .error_name            = "OB_ERR_NOP_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "23000",
      .str_error             = "NOP cannot be used here",
      .str_user_error        = "NOP cannot be used here",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5074, NOP cannot be used here",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5074, NOP cannot be used here"
};
static const _error _error_OB_ERR_PS_TOO_MANY_PARAM = {
      .error_name            = "OB_ERR_PS_TOO_MANY_PARAM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PS_MANY_PARAM,
      .sqlstate              = "54000",
      .str_error             = "Prepared statement contains too many placeholders",
      .str_user_error        = "Prepared statement contains too many placeholders",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5080, Prepared statement contains too many placeholders",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5080, Prepared statement contains too many placeholders"
};
static const _error _error_OB_ERR_READ_ONLY = {
      .error_name            = "OB_ERR_READ_ONLY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "25000",
      .str_error             = "The server is read only now",
      .str_user_error        = "The server is read only now",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5081, The server is read only now",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5081, The server is read only now"
};
static const _error _error_OB_ERR_INVALID_TYPE_FOR_OP = {
      .error_name            = "OB_ERR_INVALID_TYPE_FOR_OP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "22000",
      .str_error             = "Invalid data type for the operation",
      .str_user_error        = "invalid obj type for type promotion: left_type=%s right_type=%s",
      .oracle_errno          = 932,
      .oracle_str_error      = "ORA-00932: inconsistent datatypes",
      .oracle_str_user_error = "ORA-00932: inconsistent datatypes: left_type=%s right_type=%s"
};
static const _error _error_OB_ERR_CAST_VARCHAR_TO_BOOL = {
      .error_name            = "OB_ERR_CAST_VARCHAR_TO_BOOL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "22000",
      .str_error             = "Can not cast varchar value to bool type",
      .str_user_error        = "Can not cast varchar value to bool type",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5084, Can not cast varchar value to bool type",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5084, Can not cast varchar value to bool type"
};
static const _error _error_OB_ERR_CAST_VARCHAR_TO_NUMBER = {
      .error_name            = "OB_ERR_CAST_VARCHAR_TO_NUMBER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "22000",
      .str_error             = "Not a number Can not cast varchar value to number type",
      .str_user_error        = "Not a number Can not cast varchar value to number type",
      .oracle_errno          = 1722,
      .oracle_str_error      = "ORA-01722: invalid number",
      .oracle_str_user_error = "ORA-01722: invalid number"
};
static const _error _error_OB_ERR_CAST_VARCHAR_TO_TIME = {
      .error_name            = "OB_ERR_CAST_VARCHAR_TO_TIME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "22000",
      .str_error             = "Not timestamp Can not cast varchar value to timestamp type",
      .str_user_error        = "Not timestamp Can not cast varchar value to timestamp type",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5086, Not timestamp Can not cast varchar value to timestamp type",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5086, Not timestamp Can not cast varchar value to timestamp type"
};
static const _error _error_OB_ERR_CAST_NUMBER_OVERFLOW = {
      .error_name            = "OB_ERR_CAST_NUMBER_OVERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "22000",
      .str_error             = "Result value was out of range when cast to number",
      .str_user_error        = "Result value was out of range when cast to number",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5087, Result value was out of range when cast to number",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5087, Result value was out of range when cast to number"
};
static const _error _error_OB_INTEGER_PRECISION_OVERFLOW = {
      .error_name            = "OB_INTEGER_PRECISION_OVERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_DATA_OUT_OF_RANGE,
      .sqlstate              = "22003",
      .str_error             = "Result value was out of range when casting varchar to number",
      .str_user_error        = "value larger than specified precision(%ld,%ld) allowed for this column",
      .oracle_errno          = 1426,
      .oracle_str_error      = "ORA-01426: numeric overflow",
      .oracle_str_user_error = "ORA-01426: numeric overflow, value larger than specified precision(%ld,%ld) allowed for this column"
};
static const _error _error_OB_DECIMAL_PRECISION_OVERFLOW = {
      .error_name            = "OB_DECIMAL_PRECISION_OVERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_DATA_OUT_OF_RANGE,
      .sqlstate              = "22003",
      .str_error             = "Result value was out of range when casting varchar to number",
      .str_user_error        = "value(%s) larger than specified precision(%ld,%ld) allowed for this column",
      .oracle_errno          = 1426,
      .oracle_str_error      = "ORA-01426: numeric overflow",
      .oracle_str_user_error = "ORA-01426: numeric overflow, value(%s) larger than specified precision(%ld,%ld) allowed for this column"
};
static const _error _error_OB_SCHEMA_NUMBER_PRECISION_OVERFLOW = {
      .error_name            = "OB_SCHEMA_NUMBER_PRECISION_OVERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "22000",
      .str_error             = "Precision was out of range",
      .str_user_error        = "Precision was out of range",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5090, Precision was out of range",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5090, Precision was out of range"
};
static const _error _error_OB_SCHEMA_NUMBER_SCALE_OVERFLOW = {
      .error_name            = "OB_SCHEMA_NUMBER_SCALE_OVERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "22000",
      .str_error             = "Scale value was out of range",
      .str_user_error        = "Scale value was out of range",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5091, Scale value was out of range",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5091, Scale value was out of range"
};
static const _error _error_OB_ERR_INDEX_UNKNOWN = {
      .error_name            = "OB_ERR_INDEX_UNKNOWN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Unknown index",
      .str_user_error        = "Unknown index",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5092, Unknown index",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5092, Unknown index"
};
static const _error _error_OB_NUMERIC_OVERFLOW = {
      .error_name            = "OB_NUMERIC_OVERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_DATA_OUT_OF_RANGE,
      .sqlstate              = "22003",
      .str_error             = "Result value was out of range when casting varchar to number",
      .str_user_error        = "Result value was out of range when casting varchar to number",
      .oracle_errno          = 1426,
      .oracle_str_error      = "ORA-01426: numeric overflow",
      .oracle_str_user_error = "ORA-01426: numeric overflow"
};
static const _error _error_OB_ERR_TOO_MANY_JOIN_TABLES = {
      .error_name            = "OB_ERR_TOO_MANY_JOIN_TABLES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "too many joined tables",
      .str_user_error        = "too many joined tables",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5094, too many joined tables",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5094, too many joined tables"
};
static const _error _error_OB_ERR_DDL_ON_REMOTE_DATABASE = {
      .error_name            = "OB_ERR_DDL_ON_REMOTE_DATABASE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "DDL operations are not allowed on a remote database",
      .str_user_error        = "DDL operations are not allowed on a remote database",
      .oracle_errno          = 2021,
      .oracle_str_error      = "ORA-02021: DDL operations are not allowed on a remote database",
      .oracle_str_user_error = "ORA-02021: DDL operations are not allowed on a remote database"
};
static const _error _error_OB_ERR_MISSING_KEYWORD = {
      .error_name            = "OB_ERR_MISSING_KEYWORD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "missing keyword",
      .str_user_error        = "missing keyword",
      .oracle_errno          = 905,
      .oracle_str_error      = "ORA-00905: missing keyword",
      .oracle_str_user_error = "ORA-00905: missing keyword"
};
static const _error _error_OB_ERR_DATABASE_LINK_EXPECTED = {
      .error_name            = "OB_ERR_DATABASE_LINK_EXPECTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "database link name expected",
      .str_user_error        = "database link name expected",
      .oracle_errno          = 1729,
      .oracle_str_error      = "ORA-01729: database link name expected",
      .oracle_str_user_error = "ORA-01729: database link name expected"
};
static const _error _error_OB_ERR_VARCHAR_TOO_LONG = {
      .error_name            = "OB_ERR_VARCHAR_TOO_LONG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "22001",
      .str_error             = "Varchar value is too long for the column",
      .str_user_error        = "Data too long(%d>%ld) for column '%s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5098, Varchar value is too long for the column",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5098, Data too long(%d>%ld) for column '%s'"
};
static const _error _error_OB_ERR_SYS_CONFIG_UNKNOWN = {
      .error_name            = "OB_ERR_SYS_CONFIG_UNKNOWN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "System config unknown",
      .str_user_error        = "System config unknown",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5099, System config unknown",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5099, System config unknown"
};
static const _error _error_OB_ERR_LOCAL_VARIABLE = {
      .error_name            = "OB_ERR_LOCAL_VARIABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_LOCAL_VARIABLE,
      .sqlstate              = "HY000",
      .str_error             = "Local variable",
      .str_user_error        = "Variable \'%.*s\' is a SESSION variable and can't be used with SET GLOBAL",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5100, Local variable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5100, Variable \'%.*s\' is a SESSION variable and can't be used with SET GLOBAL"
};
static const _error _error_OB_ERR_GLOBAL_VARIABLE = {
      .error_name            = "OB_ERR_GLOBAL_VARIABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_GLOBAL_VARIABLE,
      .sqlstate              = "HY000",
      .str_error             = "Global variable",
      .str_user_error        = "Variable \'%.*s\' is a GLOBAL variable and should be set with SET GLOBAL",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5101, Global variable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5101, Variable \'%.*s\' is a GLOBAL variable and should be set with SET GLOBAL"
};
static const _error _error_OB_ERR_VARIABLE_IS_READONLY = {
      .error_name            = "OB_ERR_VARIABLE_IS_READONLY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_VARIABLE_IS_READONLY,
      .sqlstate              = "HY000",
      .str_error             = "variable is read only",
      .str_user_error        = "%.*s variable '%.*s' is read-only. Use SET %.*s to assign the value",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5102, variable is read only",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5102, %.*s variable '%.*s' is read-only. Use SET %.*s to assign the value"
};
static const _error _error_OB_ERR_INCORRECT_GLOBAL_LOCAL_VAR = {
      .error_name            = "OB_ERR_INCORRECT_GLOBAL_LOCAL_VAR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INCORRECT_GLOBAL_LOCAL_VAR,
      .sqlstate              = "HY000",
      .str_error             = "incorrect global or local variable",
      .str_user_error        = "Variable '%.*s' is a %.*s variable",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5103, incorrect global or local variable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5103, Variable '%.*s' is a %.*s variable"
};
static const _error _error_OB_ERR_EXPIRE_INFO_TOO_LONG = {
      .error_name            = "OB_ERR_EXPIRE_INFO_TOO_LONG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Expire expression too long",
      .str_user_error        = "length(%d) of expire_info is larger than the max allowed(%ld)",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5104, Expire expression too long",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5104, length(%d) of expire_info is larger than the max allowed(%ld)"
};
static const _error _error_OB_ERR_EXPIRE_COND_TOO_LONG = {
      .error_name            = "OB_ERR_EXPIRE_COND_TOO_LONG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Expire condition too long",
      .str_user_error        = "total length(%ld) of expire_info and its expression is larger than the max allowed(%ld)",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5105, Expire condition too long",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5105, total length(%ld) of expire_info and its expression is larger than the max allowed(%ld)"
};
static const _error _error_OB_INVALID_ARGUMENT_FOR_EXTRACT = {
      .error_name            = "OB_INVALID_ARGUMENT_FOR_EXTRACT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Invalid argument for extract()",
      .str_user_error        = "EXTRACT() expected timestamp or a string as date argument",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5106, Invalid argument for extract()",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5106, EXTRACT() expected timestamp or a string as date argument"
};
static const _error _error_OB_INVALID_ARGUMENT_FOR_IS = {
      .error_name            = "OB_INVALID_ARGUMENT_FOR_IS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Invalid argument for IS operator",
      .str_user_error        = "Invalid operand type for IS operator, lval=%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5107, Invalid argument for IS operator",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5107, Invalid operand type for IS operator, lval=%s"
};
static const _error _error_OB_INVALID_ARGUMENT_FOR_LENGTH = {
      .error_name            = "OB_INVALID_ARGUMENT_FOR_LENGTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Invalid argument for length()",
      .str_user_error        = "function LENGTH() expected a varchar argument",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5108, Invalid argument for length()",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5108, function LENGTH() expected a varchar argument"
};
static const _error _error_OB_INVALID_ARGUMENT_FOR_SUBSTR = {
      .error_name            = "OB_INVALID_ARGUMENT_FOR_SUBSTR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Invalid argument for substr()",
      .str_user_error        = "invalid input format. ret=%d text=%s start=%s length=%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5109, Invalid argument for substr()",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5109, invalid input format. ret=%d text=%s start=%s length=%s"
};
static const _error _error_OB_INVALID_ARGUMENT_FOR_TIME_TO_USEC = {
      .error_name            = "OB_INVALID_ARGUMENT_FOR_TIME_TO_USEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Invalid argument for time_to_usec()",
      .str_user_error        = "TIME_TO_USEC() expected timestamp or a string as date argument",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5110, Invalid argument for time_to_usec()",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5110, TIME_TO_USEC() expected timestamp or a string as date argument"
};
static const _error _error_OB_INVALID_ARGUMENT_FOR_USEC_TO_TIME = {
      .error_name            = "OB_INVALID_ARGUMENT_FOR_USEC_TO_TIME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Invalid argument for usec_to_time()",
      .str_user_error        = "USEC_TO_TIME expected a integer number as usec argument",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5111, Invalid argument for usec_to_time()",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5111, USEC_TO_TIME expected a integer number as usec argument"
};
static const _error _error_OB_ERR_USER_VARIABLE_UNKNOWN = {
      .error_name            = "OB_ERR_USER_VARIABLE_UNKNOWN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42P01",
      .str_error             = "Unknown user variable",
      .str_user_error        = "Variable %.*s does not exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5112, Unknown user variable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5112, Variable %.*s does not exists"
};
static const _error _error_OB_ILLEGAL_USAGE_OF_MERGING_FROZEN_TIME = {
      .error_name            = "OB_ILLEGAL_USAGE_OF_MERGING_FROZEN_TIME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Illegal usage of merging_frozen_time()",
      .str_user_error        = "MERGING_FROZEN_TIME() system function only be used in daily merging.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5113, Illegal usage of merging_frozen_time()",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5113, MERGING_FROZEN_TIME() system function only be used in daily merging."
};
static const _error _error_OB_INVALID_NUMERIC = {
      .error_name            = "OB_INVALID_NUMERIC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Invalid numeric",
      .str_user_error        = "Invalid numeric char '%c'",
      .oracle_errno          = 1722,
      .oracle_str_error      = "ORA-01722: invalid number",
      .oracle_str_user_error = "ORA-01722: invalid number char '%c'"
};
static const _error _error_OB_ERR_REGEXP_ERROR = {
      .error_name            = "OB_ERR_REGEXP_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_REGEXP_ERROR,
      .sqlstate              = "42000",
      .str_error             = "Got error from regexp",
      .str_user_error        = "Got error '%s' from regexp",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5115, Got error from regexp",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5115, Got error '%s' from regexp"
};
static const _error _error_OB_SQL_LOG_OP_SETCHILD_OVERFLOW = {
      .error_name            = "OB_SQL_LOG_OP_SETCHILD_OVERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Logical operator child index overflow",
      .str_user_error        = "Logical operator child index overflow",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5116, Logical operator child index overflow",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5116, Logical operator child index overflow"
};
static const _error _error_OB_SQL_EXPLAIN_FAILED = {
      .error_name            = "OB_SQL_EXPLAIN_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "fail to explain plan",
      .str_user_error        = "fail to explain plan",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5117, fail to explain plan",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5117, fail to explain plan"
};
static const _error _error_OB_SQL_OPT_COPY_OP_FAILED = {
      .error_name            = "OB_SQL_OPT_COPY_OP_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "fail to copy logical operator",
      .str_user_error        = "fail to copy logical operator",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5118, fail to copy logical operator",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5118, fail to copy logical operator"
};
static const _error _error_OB_SQL_OPT_GEN_PLAN_FALIED = {
      .error_name            = "OB_SQL_OPT_GEN_PLAN_FALIED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "fail to generate plan",
      .str_user_error        = "fail to generate plan",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5119, fail to generate plan",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5119, fail to generate plan"
};
static const _error _error_OB_SQL_OPT_CREATE_RAWEXPR_FAILED = {
      .error_name            = "OB_SQL_OPT_CREATE_RAWEXPR_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "fail to create raw expr",
      .str_user_error        = "fail to create raw expr",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5120, fail to create raw expr",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5120, fail to create raw expr"
};
static const _error _error_OB_SQL_OPT_JOIN_ORDER_FAILED = {
      .error_name            = "OB_SQL_OPT_JOIN_ORDER_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "fail to generate join order",
      .str_user_error        = "fail to generate join order",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5121, fail to generate join order",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5121, fail to generate join order"
};
static const _error _error_OB_SQL_OPT_ERROR = {
      .error_name            = "OB_SQL_OPT_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "optimizer general error",
      .str_user_error        = "optimizer general error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5122, optimizer general error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5122, optimizer general error"
};
static const _error _error_OB_ERR_OCI_INIT_TIMEZONE = {
      .error_name            = "OB_ERR_OCI_INIT_TIMEZONE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "failure to initialize timezone information",
      .str_user_error        = "failure to initialize timezone information",
      .oracle_errno          = 1804,
      .oracle_str_error      = "ORA-01804: failure to initialize timezone information",
      .oracle_str_user_error = "ORA-01804: failure to initialize timezone information"
};
static const _error _error_OB_ERR_ZLIB_DATA = {
      .error_name            = "OB_ERR_ZLIB_DATA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_ZLIB_Z_DATA_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "ZLIB: Input data corrupted",
      .str_user_error        = "ZLIB: Input data corrupted",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5124, ZLIB: Input data corrupted",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5124, ZLIB: Input data corrupted"
};
static const _error _error_OB_ERR_DBLINK_SESSION_KILLED = {
      .error_name            = "OB_ERR_DBLINK_SESSION_KILLED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "your session has been killed",
      .str_user_error        = "your session has been killed",
      .oracle_errno          = 28,
      .oracle_str_error      = "ORA-00028: your session has been killed",
      .oracle_str_user_error = "ORA-00028: your session has been killed"
};
static const _error _error_OB_SQL_RESOLVER_NO_MEMORY = {
      .error_name            = "OB_SQL_RESOLVER_NO_MEMORY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "sql resolver no memory",
      .str_user_error        = "sql resolver no memory",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5130, sql resolver no memory",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5130, sql resolver no memory"
};
static const _error _error_OB_SQL_DML_ONLY = {
      .error_name            = "OB_SQL_DML_ONLY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "plan cache support dml only",
      .str_user_error        = "plan cache support dml only",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5131, plan cache support dml only",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5131, plan cache support dml only"
};
static const _error _error_OB_ERR_NO_GRANT = {
      .error_name            = "OB_ERR_NO_GRANT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "No such grant defined",
      .str_user_error        = "No such grant defined",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5133, No such grant defined",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5133, No such grant defined"
};
static const _error _error_OB_ERR_NO_DB_SELECTED = {
      .error_name            = "OB_ERR_NO_DB_SELECTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NO_DB_ERROR,
      .sqlstate              = "3D000",
      .str_error             = "No database selected",
      .str_user_error        = "No database selected",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5134, No database selected",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5134, No database selected"
};
static const _error _error_OB_SQL_PC_OVERFLOW = {
      .error_name            = "OB_SQL_PC_OVERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "plan cache is overflow",
      .str_user_error        = "plan cache is overflow",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5135, plan cache is overflow",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5135, plan cache is overflow"
};
static const _error _error_OB_SQL_PC_PLAN_DUPLICATE = {
      .error_name            = "OB_SQL_PC_PLAN_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "plan exists in plan cache already",
      .str_user_error        = "plan exists in plan cache already",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5136, plan exists in plan cache already",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5136, plan exists in plan cache already"
};
static const _error _error_OB_SQL_PC_PLAN_EXPIRE = {
      .error_name            = "OB_SQL_PC_PLAN_EXPIRE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "plan is expired",
      .str_user_error        = "plan is expired",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5137, plan is expired",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5137, plan is expired"
};
static const _error _error_OB_SQL_PC_NOT_EXIST = {
      .error_name            = "OB_SQL_PC_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no plan exist",
      .str_user_error        = "no plan exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5138, no plan exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5138, no plan exist"
};
static const _error _error_OB_SQL_PARAMS_LIMIT = {
      .error_name            = "OB_SQL_PARAMS_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "too many params, plan cache not support",
      .str_user_error        = "too many params, plan cache not support",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5139, too many params, plan cache not support",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5139, too many params, plan cache not support"
};
static const _error _error_OB_SQL_PC_PLAN_SIZE_LIMIT = {
      .error_name            = "OB_SQL_PC_PLAN_SIZE_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "plan is too big to add to plan cache",
      .str_user_error        = "plan is too big to add to plan cache",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5140, plan is too big to add to plan cache",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5140, plan is too big to add to plan cache"
};
static const _error _error_OB_ERR_UNKNOWN_CHARSET = {
      .error_name            = "OB_ERR_UNKNOWN_CHARSET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNKNOWN_CHARACTER_SET,
      .sqlstate              = "42000",
      .str_error             = "Unknown character set",
      .str_user_error        = "Unknown character set: '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5142, Unknown character set",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5142, Unknown character set: '%.*s'"
};
static const _error _error_OB_ERR_UNKNOWN_COLLATION = {
      .error_name            = "OB_ERR_UNKNOWN_COLLATION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNKNOWN_COLLATION,
      .sqlstate              = "HY000",
      .str_error             = "Unknown collation",
      .str_user_error        = "Unknown collation: '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5143, Unknown collation",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5143, Unknown collation: '%.*s'"
};
static const _error _error_OB_ERR_COLLATION_MISMATCH = {
      .error_name            = "OB_ERR_COLLATION_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_COLLATION_CHARSET_MISMATCH,
      .sqlstate              = "42000",
      .str_error             = "The collation is not valid for the character set",
      .str_user_error        = "COLLATION '%.*s' is not valid for CHARACTER SET '%.*s'",
      .oracle_errno          = 12704,
      .oracle_str_error      = "ORA-12704: character set mismatch",
      .oracle_str_user_error = "ORA-12704: COLLATION '%.*s' is not valid for CHARACTER SET '%.*s'"
};
static const _error _error_OB_ERR_WRONG_VALUE_FOR_VAR = {
      .error_name            = "OB_ERR_WRONG_VALUE_FOR_VAR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_VALUE_FOR_VAR,
      .sqlstate              = "42000",
      .str_error             = "Variable can't be set to the value",
      .str_user_error        = "Variable \'%.*s\' can't be set to the value of \'%.*s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5145, Variable can't be set to the value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5145, Variable \'%.*s\' can't be set to the value of \'%.*s\'"
};
static const _error _error_OB_UNKNOWN_PARTITION = {
      .error_name            = "OB_UNKNOWN_PARTITION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNKNOWN_PARTITION,
      .sqlstate              = "HY000",
      .str_error             = "Unknown partition",
      .str_user_error        = "Unkown partition '%.*s' in table '%.*s'",
      .oracle_errno          = 2149,
      .oracle_str_error      = "ORA-02149: Specified partition does not exist",
      .oracle_str_user_error = "ORA-02149: Specified partition does not exist '%.*s' in table '%.*s'"
};
static const _error _error_OB_PARTITION_NOT_MATCH = {
      .error_name            = "OB_PARTITION_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET,
      .sqlstate              = "HY000",
      .str_error             = "Found a row not matching the given partition set",
      .str_user_error        = "Found a row not matching the given partition set",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5147, Found a row not matching the given partition set",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5147, Found a row not matching the given partition set"
};
static const _error _error_OB_ER_PASSWD_LENGTH = {
      .error_name            = "OB_ER_PASSWD_LENGTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = " Password hash should be a 40-digit hexadecimal number",
      .str_user_error        = " Password hash should be a 40-digit hexadecimal number",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5148,  Password hash should be a 40-digit hexadecimal number",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5148,  Password hash should be a 40-digit hexadecimal number"
};
static const _error _error_OB_ERR_INSERT_INNER_JOIN_COLUMN = {
      .error_name            = "OB_ERR_INSERT_INNER_JOIN_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "07000",
      .str_error             = "Insert inner join column error",
      .str_user_error        = "Insert inner join column error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5149, Insert inner join column error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5149, Insert inner join column error"
};
static const _error _error_OB_TENANT_NOT_IN_SERVER = {
      .error_name            = "OB_TENANT_NOT_IN_SERVER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Tenant not in this server",
      .str_user_error        = "Tenant not in this server",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5150, Tenant not in this server",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5150, Tenant not in this server"
};
static const _error _error_OB_TABLEGROUP_NOT_EXIST = {
      .error_name            = "OB_TABLEGROUP_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42P01",
      .str_error             = "tablegroup not exist",
      .str_user_error        = "tablegroup not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5151, tablegroup not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5151, tablegroup not exist"
};
static const _error _error_OB_SUBQUERY_TOO_MANY_ROW = {
      .error_name            = "OB_SUBQUERY_TOO_MANY_ROW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SUBQUERY_NO_1_ROW,
      .sqlstate              = "21000",
      .str_error             = "Subquery returns more than 1 row",
      .str_user_error        = "Subquery returns more than 1 row",
      .oracle_errno          = 1427,
      .oracle_str_error      = "ORA-01427: single-row subquery returns more than one row",
      .oracle_str_user_error = "ORA-01427: single-row subquery returns more than one row"
};
static const _error _error_OB_ERR_BAD_DATABASE = {
      .error_name            = "OB_ERR_BAD_DATABASE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_BAD_DB_ERROR,
      .sqlstate              = "42000",
      .str_error             = "Unknown database",
      .str_user_error        = "Unknown database '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5154, Unknown database",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5154, Unknown database '%.*s'"
};
static const _error _error_OB_CANNOT_USER = {
      .error_name            = "OB_CANNOT_USER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANNOT_USER,
      .sqlstate              = "HY000",
      .str_error             = "User operation failed",
      .str_user_error        = "Operation %.*s failed for %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5155, User operation failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5155, Operation %.*s failed for %.*s"
};
static const _error _error_OB_TENANT_EXIST = {
      .error_name            = "OB_TENANT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "tenant already exist",
      .str_user_error        = "tenant \'%s\' already exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5156, tenant already exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5156, tenant \'%s\' already exist"
};
static const _error _error_OB_TENANT_NOT_EXIST = {
      .error_name            = "OB_TENANT_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Unknown tenant",
      .str_user_error        = "Unknown tenant '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5157, Unknown tenant",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5157, Unknown tenant '%.*s'"
};
static const _error _error_OB_DATABASE_EXIST = {
      .error_name            = "OB_DATABASE_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DB_CREATE_EXISTS,
      .sqlstate              = "HY000",
      .str_error             = "Can't create database;database exists",
      .str_user_error        = "Can't create database '%.*s'; database exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5158, Can't create database;database exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5158, Can't create database '%.*s'; database exists"
};
static const _error _error_OB_TABLEGROUP_EXIST = {
      .error_name            = "OB_TABLEGROUP_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "tablegroup already exist",
      .str_user_error        = "tablegroup already exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5159, tablegroup already exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5159, tablegroup already exist"
};
static const _error _error_OB_ERR_INVALID_TENANT_NAME = {
      .error_name            = "OB_ERR_INVALID_TENANT_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid tenant name specified in connection string",
      .str_user_error        = "invalid tenant name specified in connection string",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5160, invalid tenant name specified in connection string",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5160, invalid tenant name specified in connection string"
};
static const _error _error_OB_EMPTY_TENANT = {
      .error_name            = "OB_EMPTY_TENANT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "tenant is empty",
      .str_user_error        = "tenant is empty",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5161, tenant is empty",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5161, tenant is empty"
};
static const _error _error_OB_WRONG_DB_NAME = {
      .error_name            = "OB_WRONG_DB_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_DB_NAME,
      .sqlstate              = "42000",
      .str_error             = "Incorrect database name",
      .str_user_error        = "Incorrect database name '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5162, Incorrect database name",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5162, Incorrect database name '%.*s'"
};
static const _error _error_OB_WRONG_TABLE_NAME = {
      .error_name            = "OB_WRONG_TABLE_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_TABLE_NAME,
      .sqlstate              = "42000",
      .str_error             = "Incorrect table name",
      .str_user_error        = "Incorrect table name '%.*s'",
      .oracle_errno          = 903,
      .oracle_str_error      = "ORA-00903: invalid table name",
      .oracle_str_user_error = "ORA-00903: invalid table name '%.*s'"
};
static const _error _error_OB_WRONG_COLUMN_NAME = {
      .error_name            = "OB_WRONG_COLUMN_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_COLUMN_NAME,
      .sqlstate              = "42000",
      .str_error             = "Incorrect column name",
      .str_user_error        = "Incorrect column name '%.*s'",
      .oracle_errno          = 904,
      .oracle_str_error      = "ORA-00904: invalid identifier",
      .oracle_str_user_error = "ORA-00904: invalid identifier '%.*s'"
};
static const _error _error_OB_ERR_COLUMN_SPEC = {
      .error_name            = "OB_ERR_COLUMN_SPEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_FIELD_SPEC,
      .sqlstate              = "42000",
      .str_error             = "Incorrect column specifier",
      .str_user_error        = "Incorrect column specifier for column '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5165, Incorrect column specifier",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5165, Incorrect column specifier for column '%.*s'"
};
static const _error _error_OB_ERR_DB_DROP_EXISTS = {
      .error_name            = "OB_ERR_DB_DROP_EXISTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DB_DROP_EXISTS,
      .sqlstate              = "HY000",
      .str_error             = "Can't drop database;database doesn't exist",
      .str_user_error        = "Can't drop database '%.*s'; database doesn't exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5166, Can't drop database;database doesn't exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5166, Can't drop database '%.*s'; database doesn't exist"
};
static const _error _error_OB_ERR_DATA_TOO_LONG = {
      .error_name            = "OB_ERR_DATA_TOO_LONG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DATA_TOO_LONG,
      .sqlstate              = "22001",
      .str_error             = "Data too long for column",
      .str_user_error        = "Data too long for column '%.*s' at row %ld",
      .oracle_errno          = 12899,
      .oracle_str_error      = "ORA-12899: value too large for column",
      .oracle_str_user_error = "ORA-12899: value too large for column '%.*s' at row %ld"
};
static const _error _error_OB_ERR_WRONG_VALUE_COUNT_ON_ROW = {
      .error_name            = "OB_ERR_WRONG_VALUE_COUNT_ON_ROW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_VALUE_COUNT_ON_ROW,
      .sqlstate              = "21S01",
      .str_error             = "column count does not match value count",
      .str_user_error        = "column count does not match value count at row '%d'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5168, column count does not match value count",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5168, column count does not match value count at row '%d'"
};
static const _error _error_OB_ERR_CREATE_USER_WITH_GRANT = {
      .error_name            = "OB_ERR_CREATE_USER_WITH_GRANT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_CREATE_USER_WITH_GRANT,
      .sqlstate              = "42000",
      .str_error             = "You are not allowed to create a user with GRANT",
      .str_user_error        = "You are not allowed to create a user with GRANT",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5169, You are not allowed to create a user with GRANT",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5169, You are not allowed to create a user with GRANT"
};
static const _error _error_OB_ERR_NO_DB_PRIVILEGE = {
      .error_name            = "OB_ERR_NO_DB_PRIVILEGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DBACCESS_DENIED_ERROR,
      .sqlstate              = "42000",
      .str_error             = "Access denied for user to database",
      .str_user_error        = "Access denied for user '%.*s'@'%.*s' to database '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5170, Access denied for user to database",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5170, Access denied for user '%.*s'@'%.*s' to database '%.*s'"
};
static const _error _error_OB_ERR_NO_TABLE_PRIVILEGE = {
      .error_name            = "OB_ERR_NO_TABLE_PRIVILEGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TABLEACCESS_DENIED_ERROR,
      .sqlstate              = "42000",
      .str_error             = "Command denied to user for table",
      .str_user_error        = "%.*s command denied to user '%.*s'@'%.*s' for table '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5171, Command denied to user for table",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5171, %.*s command denied to user '%.*s'@'%.*s' for table '%.*s'"
};
static const _error _error_OB_INVALID_ON_UPDATE = {
      .error_name            = "OB_INVALID_ON_UPDATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_ON_UPDATE,
      .sqlstate              = "HY000",
      .str_error             = "Invalid ON UPDATE clause",
      .str_user_error        = "Invalid ON UPDATE clause for \'%s\' column",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5172, Invalid ON UPDATE clause",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5172, Invalid ON UPDATE clause for \'%s\' column"
};
static const _error _error_OB_INVALID_DEFAULT = {
      .error_name            = "OB_INVALID_DEFAULT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_DEFAULT,
      .sqlstate              = "42000",
      .str_error             = "Invalid default value",
      .str_user_error        = "Invalid default value for \'%.*s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5173, Invalid default value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5173, Invalid default value for \'%.*s\'"
};
static const _error _error_OB_ERR_UPDATE_TABLE_USED = {
      .error_name            = "OB_ERR_UPDATE_TABLE_USED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UPDATE_TABLE_USED,
      .sqlstate              = "HY000",
      .str_error             = "Update table used",
      .str_user_error        = "You can\'t specify target table \'%s\' for update in FROM clause",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5174, Update table used",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5174, You can\'t specify target table \'%s\' for update in FROM clause"
};
static const _error _error_OB_ERR_COULUMN_VALUE_NOT_MATCH = {
      .error_name            = "OB_ERR_COULUMN_VALUE_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_VALUE_COUNT_ON_ROW,
      .sqlstate              = "21S01",
      .str_error             = "Column count doesn\'t match value count",
      .str_user_error        = "Column count doesn\'t match value count at row %ld",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5175, Column count doesn\'t match value count",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5175, Column count doesn\'t match value count at row %ld"
};
static const _error _error_OB_ERR_INVALID_GROUP_FUNC_USE = {
      .error_name            = "OB_ERR_INVALID_GROUP_FUNC_USE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_GROUP_FUNC_USE,
      .sqlstate              = "HY000",
      .str_error             = "Invalid use of group function",
      .str_user_error        = "Invalid use of group function",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5176, Invalid use of group function",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5176, Invalid use of group function"
};
static const _error _error_OB_CANT_AGGREGATE_2COLLATIONS = {
      .error_name            = "OB_CANT_AGGREGATE_2COLLATIONS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_AGGREGATE_2COLLATIONS,
      .sqlstate              = "HY000",
      .str_error             = "Illegal mix of collations",
      .str_user_error        = "Illegal mix of collations",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5177, Illegal mix of collations",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5177, Illegal mix of collations"
};
static const _error _error_OB_ERR_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD = {
      .error_name            = "OB_ERR_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD,
      .sqlstate              = "HY000",
      .str_error             = "Field is of a not allowed type for this type of partitioning",
      .str_user_error        = "Field \'%.*s\' is of a not allowed type for this type of partitioning",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5178, Field is of a not allowed type for this type of partitioning",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5178, Field \'%.*s\' is of a not allowed type for this type of partitioning"
};
static const _error _error_OB_ERR_TOO_LONG_IDENT = {
      .error_name            = "OB_ERR_TOO_LONG_IDENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_LONG_IDENT,
      .sqlstate              = "42000",
      .str_error             = "Identifier name is too long",
      .str_user_error        = "Identifier name \'%.*s\' is too long",
      .oracle_errno          = 972,
      .oracle_str_error      = "ORA-00972: identifier is too long",
      .oracle_str_user_error = "ORA-00972: identifier \'%.*s\' is too long"
};
static const _error _error_OB_ERR_WRONG_TYPE_FOR_VAR = {
      .error_name            = "OB_ERR_WRONG_TYPE_FOR_VAR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_TYPE_FOR_VAR,
      .sqlstate              = "42000",
      .str_error             = "Incorrect argument type to variable",
      .str_user_error        = "Incorrect argument type to variable '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5180, Incorrect argument type to variable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5180, Incorrect argument type to variable '%.*s'"
};
static const _error _error_OB_WRONG_USER_NAME_LENGTH = {
      .error_name            = "OB_WRONG_USER_NAME_LENGTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_STRING_LENGTH,
      .sqlstate              = "HY000",
      .str_error             = "String is too long for user_name (should be no longer than 64)",
      .str_user_error        = "String '%.*s' is too long for user name (should be no longer than 64)",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5181, String is too long for user_name (should be no longer than 64)",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5181, String '%.*s' is too long for user name (should be no longer than 64)"
};
static const _error _error_OB_ERR_PRIV_USAGE = {
      .error_name            = "OB_ERR_PRIV_USAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_USAGE,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect usage of DB GRANT and GLOBAL PRIVILEGES",
      .str_user_error        = "Incorrect usage of DB GRANT and GLOBAL PRIVILEGES",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5182, Incorrect usage of DB GRANT and GLOBAL PRIVILEGES",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5182, Incorrect usage of DB GRANT and GLOBAL PRIVILEGES"
};
static const _error _error_OB_ILLEGAL_GRANT_FOR_TABLE = {
      .error_name            = "OB_ILLEGAL_GRANT_FOR_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_ILLEGAL_GRANT_FOR_TABLE,
      .sqlstate              = "42000",
      .str_error             = "Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used",
      .str_user_error        = "Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5183, Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5183, Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used"
};
static const _error _error_OB_ERR_REACH_AUTOINC_MAX = {
      .error_name            = "OB_ERR_REACH_AUTOINC_MAX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_AUTOINC_READ_FAILED,
      .sqlstate              = "HY000",
      .str_error             = "Failed to read auto-increment value from storage engine",
      .str_user_error        = "Failed to read auto-increment value from storage engine",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5184, Failed to read auto-increment value from storage engine",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5184, Failed to read auto-increment value from storage engine"
};
static const _error _error_OB_ERR_NO_TABLES_USED = {
      .error_name            = "OB_ERR_NO_TABLES_USED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NO_TABLES_USED,
      .sqlstate              = "HY000",
      .str_error             = "No tables used",
      .str_user_error        = "No tables used",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5185, No tables used",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5185, No tables used"
};
static const _error _error_OB_CANT_REMOVE_ALL_FIELDS = {
      .error_name            = "OB_CANT_REMOVE_ALL_FIELDS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_REMOVE_ALL_FIELDS,
      .sqlstate              = "42000",
      .str_error             = "You can't delete all columns with ALTER TABLE; use DROP TABLE instead",
      .str_user_error        = "You can't delete all columns with ALTER TABLE; use DROP TABLE instead",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5187, You can't delete all columns with ALTER TABLE; use DROP TABLE instead",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5187, You can't delete all columns with ALTER TABLE; use DROP TABLE instead"
};
static const _error _error_OB_TOO_MANY_PARTITIONS_ERROR = {
      .error_name            = "OB_TOO_MANY_PARTITIONS_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_MANY_PARTITIONS_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Too many partitions (including subpartitions) were defined",
      .str_user_error        = "Too many partitions (including subpartitions) were defined",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5188, Too many partitions (including subpartitions) were defined",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5188, Too many partitions (including subpartitions) were defined"
};
static const _error _error_OB_NO_PARTS_ERROR = {
      .error_name            = "OB_NO_PARTS_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NO_PARTS_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Number of partitions = 0 is not an allowed value",
      .str_user_error        = "Number of partitions = 0 is not an allowed value",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5189, Number of partitions = 0 is not an allowed value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5189, Number of partitions = 0 is not an allowed value"
};
static const _error _error_OB_WRONG_SUB_KEY = {
      .error_name            = "OB_WRONG_SUB_KEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_SUB_KEY,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys",
      .str_user_error        = "Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5190, Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5190, Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys"
};
static const _error _error_OB_KEY_PART_0 = {
      .error_name            = "OB_KEY_PART_0",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_KEY_PART_0,
      .sqlstate              = "HY000",
      .str_error             = "Key part length cannot be 0",
      .str_user_error        = "Key part \'%.*s\' length cannot be 0",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5191, Key part length cannot be 0",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5191, Key part \'%.*s\' length cannot be 0"
};
static const _error _error_OB_ERR_UNKNOWN_TIME_ZONE = {
      .error_name            = "OB_ERR_UNKNOWN_TIME_ZONE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNKNOWN_TIME_ZONE,
      .sqlstate              = "HY000",
      .str_error             = "Unknown or incorrect time zone",
      .str_user_error        = "Unknown or incorrect time zone: \'%.*s\'",
      .oracle_errno          = 1882,
      .oracle_str_error      = "ORA-01882: timezone region string not found",
      .oracle_str_user_error = "ORA-01882: timezone region \'%.*s\' not found"
};
static const _error _error_OB_ERR_WRONG_AUTO_KEY = {
      .error_name            = "OB_ERR_WRONG_AUTO_KEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_AUTO_KEY,
      .sqlstate              = "42000",
      .str_error             = "Incorrect table definition; there can be only one auto column",
      .str_user_error        = "Incorrect table definition; there can be only one auto column",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5193, Incorrect table definition; there can be only one auto column",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5193, Incorrect table definition; there can be only one auto column"
};
static const _error _error_OB_ERR_TOO_MANY_KEYS = {
      .error_name            = "OB_ERR_TOO_MANY_KEYS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_MANY_KEYS,
      .sqlstate              = "42000",
      .str_error             = "Too many keys specified",
      .str_user_error        = "Too many keys specified; max %ld keys allowed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5194, Too many keys specified",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5194, Too many keys specified; max %ld keys allowed"
};
static const _error _error_OB_ERR_TOO_MANY_ROWKEY_COLUMNS = {
      .error_name            = "OB_ERR_TOO_MANY_ROWKEY_COLUMNS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_MANY_KEY_PARTS,
      .sqlstate              = "42000",
      .str_error             = "Too many key parts specified",
      .str_user_error        = "Too many key parts specified; max %ld parts allowed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5195, Too many key parts specified",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5195, Too many key parts specified; max %ld parts allowed"
};
static const _error _error_OB_ERR_TOO_LONG_KEY_LENGTH = {
      .error_name            = "OB_ERR_TOO_LONG_KEY_LENGTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_LONG_KEY,
      .sqlstate              = "42000",
      .str_error             = "Specified key was too long",
      .str_user_error        = "Specified key was too long; max key length is %ld bytes",
      .oracle_errno          = 1450,
      .oracle_str_error      = "ORA-01450: maximum key length exceeded",
      .oracle_str_user_error = "ORA-01450: maximum key length (%ld) exceeded"
};
static const _error _error_OB_ERR_TOO_MANY_COLUMNS = {
      .error_name            = "OB_ERR_TOO_MANY_COLUMNS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_MANY_FIELDS,
      .sqlstate              = "42000",
      .str_error             = "Too many columns",
      .str_user_error        = "Too many columns",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5197, Too many columns",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5197, Too many columns"
};
static const _error _error_OB_ERR_TOO_LONG_COLUMN_LENGTH = {
      .error_name            = "OB_ERR_TOO_LONG_COLUMN_LENGTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_BIG_FIELDLENGTH,
      .sqlstate              = "42000",
      .str_error             = "Column length too big",
      .str_user_error        = "Column length too big for column '%s' (max = %d)",
      .oracle_errno          = 910,
      .oracle_str_error      = "ORA-00910: specified length too long for its datatype",
      .oracle_str_user_error = "ORA-00910: specified length too long for column '%s' (max = %d byte)"
};
static const _error _error_OB_ERR_TOO_BIG_ROWSIZE = {
      .error_name            = "OB_ERR_TOO_BIG_ROWSIZE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_BIG_ROWSIZE,
      .sqlstate              = "42000",
      .str_error             = "Row size too large",
      .str_user_error        = "Row size too large",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5199, Row size too large",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5199, Row size too large"
};
static const _error _error_OB_ERR_UNKNOWN_TABLE = {
      .error_name            = "OB_ERR_UNKNOWN_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNKNOWN_TABLE,
      .sqlstate              = "42S02",
      .str_error             = "Unknown table",
      .str_user_error        = "Unknown table '%.*s' in %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5200, Unknown table",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5200, Unknown table '%.*s' in %.*s"
};
static const _error _error_OB_ERR_BAD_TABLE = {
      .error_name            = "OB_ERR_BAD_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_BAD_TABLE_ERROR,
      .sqlstate              = "42S02",
      .str_error             = "Unknown table",
      .str_user_error        = "Unknown table '%.*s'",
      .oracle_errno          = 942,
      .oracle_str_error      = "ORA-00942: table or view does not exist",
      .oracle_str_user_error = "ORA-00942: table or view '%.*s' does not exist"
};
static const _error _error_OB_ERR_TOO_BIG_SCALE = {
      .error_name            = "OB_ERR_TOO_BIG_SCALE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_BIG_SCALE,
      .sqlstate              = "42000",
      .str_error             = "Too big scale specified for column",
      .str_user_error        = "Too big scale %d specified for column '%s'. Maximum is %ld.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5202, Too big scale specified for column",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5202, Too big scale %d specified for column '%s'. Maximum is %ld."
};
static const _error _error_OB_ERR_TOO_BIG_PRECISION = {
      .error_name            = "OB_ERR_TOO_BIG_PRECISION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_BIG_PRECISION,
      .sqlstate              = "42000",
      .str_error             = "Too big precision specified for column",
      .str_user_error        = "Too big precision %d specified for column '%s'. Maximum is %ld.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5203, Too big precision specified for column",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5203, Too big precision %d specified for column '%s'. Maximum is %ld."
};
static const _error _error_OB_ERR_M_BIGGER_THAN_D = {
      .error_name            = "OB_ERR_M_BIGGER_THAN_D",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_M_BIGGER_THAN_D,
      .sqlstate              = "42000",
      .str_error             = "precision must be >= scale",
      .str_user_error        = "For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column '%s').",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5204, precision must be >= scale",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5204, For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column '%s')."
};
static const _error _error_OB_ERR_TOO_BIG_DISPLAYWIDTH = {
      .error_name            = "OB_ERR_TOO_BIG_DISPLAYWIDTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_BIG_DISPLAYWIDTH,
      .sqlstate              = "42000",
      .str_error             = "Display width out of range for column",
      .str_user_error        = "Display width out of range for column '%s' (max = %ld)",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5205, Display width out of range for column",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5205, Display width out of range for column '%s' (max = %ld)"
};
static const _error _error_OB_WRONG_GROUP_FIELD = {
      .error_name            = "OB_WRONG_GROUP_FIELD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_GROUP_FIELD,
      .sqlstate              = "42000",
      .str_error             = "Can't group on column",
      .str_user_error        = "Can't group on '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5206, Can't group on column",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5206, Can't group on '%.*s'"
};
static const _error _error_OB_NON_UNIQ_ERROR = {
      .error_name            = "OB_NON_UNIQ_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NON_UNIQ_ERROR,
      .sqlstate              = "23000",
      .str_error             = "Column is ambiguous",
      .str_user_error        = "Column '%.*s' in %.*s is ambiguous",
      .oracle_errno          = 918,
      .oracle_str_error      = "ORA-00918: Column is ambiguous",
      .oracle_str_user_error = "ORA-00918: column '%.*s' in %.*s ambiguously defined"
};
static const _error _error_OB_ERR_NONUNIQ_TABLE = {
      .error_name            = "OB_ERR_NONUNIQ_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NONUNIQ_TABLE,
      .sqlstate              = "42000",
      .str_error             = "Not unique table/alias",
      .str_user_error        = "Not unique table/alias: \'%.*s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5208, Not unique table/alias",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5208, Not unique table/alias: \'%.*s\'"
};
static const _error _error_OB_ERR_CANT_DROP_FIELD_OR_KEY = {
      .error_name            = "OB_ERR_CANT_DROP_FIELD_OR_KEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_DROP_FIELD_OR_KEY,
      .sqlstate              = "42000",
      .str_error             = "Can't DROP Column; check that column/key exists",
      .str_user_error        = "Can't DROP '%.*s'; check that column/key exists",
      .oracle_errno          = 1418,
      .oracle_str_error      = "ORA-01418: specified index does not exist",
      .oracle_str_user_error = "ORA-01418: specified index '%.*s' does not exist"
};
static const _error _error_OB_ERR_MULTIPLE_PRI_KEY = {
      .error_name            = "OB_ERR_MULTIPLE_PRI_KEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_MULTIPLE_PRI_KEY,
      .sqlstate              = "42000",
      .str_error             = "Multiple primary key defined",
      .str_user_error        = "Multiple primary key defined",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5210, Multiple primary key defined",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5210, Multiple primary key defined"
};
static const _error _error_OB_ERR_KEY_COLUMN_DOES_NOT_EXITS = {
      .error_name            = "OB_ERR_KEY_COLUMN_DOES_NOT_EXITS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_KEY_COLUMN_DOES_NOT_EXITS,
      .sqlstate              = "42000",
      .str_error             = "Key column doesn't exist in table",
      .str_user_error        = "Key column '%.*s' doesn't exist in table",
      .oracle_errno          = 904,
      .oracle_str_error      = "ORA-00904: invalid identifier",
      .oracle_str_user_error = "ORA-00904: '%.*s': invalid identifier"
};
static const _error _error_OB_ERR_AUTO_PARTITION_KEY = {
      .error_name            = "OB_ERR_AUTO_PARTITION_KEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "auto-increment column should not be part of partition key",
      .str_user_error        = "auto-increment column '%.*s' should not be part of partition key",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5212, auto-increment column should not be part of partition key",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5212, auto-increment column '%.*s' should not be part of partition key"
};
static const _error _error_OB_ERR_CANT_USE_OPTION_HERE = {
      .error_name            = "OB_ERR_CANT_USE_OPTION_HERE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_USE_OPTION_HERE,
      .sqlstate              = "42000",
      .str_error             = "Incorrect usage/placement",
      .str_user_error        = "Incorrect usage/placement of '%s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5213, Incorrect usage/placement",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5213, Incorrect usage/placement of '%s'"
};
static const _error _error_OB_ERR_WRONG_OBJECT = {
      .error_name            = "OB_ERR_WRONG_OBJECT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_OBJECT,
      .sqlstate              = "HY000",
      .str_error             = "Wrong object",
      .str_user_error        = "\'%s.%s\' is not %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5214, Wrong object",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5214, \'%s.%s\' is not %s"
};
static const _error _error_OB_ERR_ON_RENAME = {
      .error_name            = "OB_ERR_ON_RENAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_ERROR_ON_RENAME,
      .sqlstate              = "HY000",
      .str_error             = "Error on rename table",
      .str_user_error        = "Error on rename of \'%s.%s\' to \'%s.%s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5215, Error on rename table",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5215, Error on rename of \'%s.%s\' to \'%s.%s\'"
};
static const _error _error_OB_ERR_WRONG_KEY_COLUMN = {
      .error_name            = "OB_ERR_WRONG_KEY_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_KEY_COLUMN,
      .sqlstate              = "42000",
      .str_error             = "The used storage engine can't index column",
      .str_user_error        = "The used storage engine can't index column '%.*s'",
      .oracle_errno          = 2329,
      .oracle_str_error      = "ORA-02329: column of datatype string cannot be unique or a primary key",
      .oracle_str_user_error = "ORA-02329: column '%.*s' of datatype string cannot be unique or a primary key"
};
static const _error _error_OB_ERR_BAD_FIELD_ERROR = {
      .error_name            = "OB_ERR_BAD_FIELD_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_BAD_FIELD_ERROR,
      .sqlstate              = "42S22",
      .str_error             = "Unknown column",
      .str_user_error        = "Unknown column '%.*s' in '%.*s'",
      .oracle_errno          = 904,
      .oracle_str_error      = "ORA-00904: invalid identifier",
      .oracle_str_user_error = "ORA-00904: invalid identifier '%.*s' in '%.*s'"
};
static const _error _error_OB_ERR_WRONG_FIELD_WITH_GROUP = {
      .error_name            = "OB_ERR_WRONG_FIELD_WITH_GROUP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_FIELD_WITH_GROUP,
      .sqlstate              = "42000",
      .str_error             = "column is not in GROUP BY",
      .str_user_error        = "\'%.*s\' is not in GROUP BY",
      .oracle_errno          = 979,
      .oracle_str_error      = "ORA-00979: not a GROUP BY expression",
      .oracle_str_user_error = "ORA-00979: \'%.*s\' not a GROUP BY expression"
};
static const _error _error_OB_ERR_CANT_CHANGE_TX_CHARACTERISTICS = {
      .error_name            = "OB_ERR_CANT_CHANGE_TX_CHARACTERISTICS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_CHANGE_TX_CHARACTERISTICS,
      .sqlstate              = "25001",
      .str_error             = "Transaction characteristics can't be changed while a transaction is in progress",
      .str_user_error        = "Transaction characteristics can't be changed while a transaction is in progress",
      .oracle_errno          = 1453,
      .oracle_str_error      = "ORA-01453: SET TRANSACTION must be first statement of transaction",
      .oracle_str_user_error = "ORA-01453: SET TRANSACTION must be first statement of transaction"
};
static const _error _error_OB_ERR_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION = {
      .error_name            = "OB_ERR_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION,
      .sqlstate              = "25006",
      .str_error             = "Cannot execute statement in a READ ONLY transaction.",
      .str_user_error        = "Cannot execute statement in a READ ONLY transaction.",
      .oracle_errno          = 1456,
      .oracle_str_error      = "ORA-01456: may not perform insert/delete/update operation inside a READ ONLY transaction",
      .oracle_str_user_error = "ORA-01456: may not perform insert/delete/update operation inside a READ ONLY transaction"
};
static const _error _error_OB_ERR_MIX_OF_GROUP_FUNC_AND_FIELDS = {
      .error_name            = "OB_ERR_MIX_OF_GROUP_FUNC_AND_FIELDS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_MIX_OF_GROUP_FUNC_AND_FIELDS,
      .sqlstate              = "42000",
      .str_error             = "Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause",
      .str_user_error        = "Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5221, Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5221, Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause"
};
static const _error _error_OB_ERR_TRUNCATED_WRONG_VALUE = {
      .error_name            = "OB_ERR_TRUNCATED_WRONG_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRUNCATED_WRONG_VALUE,
      .sqlstate              = "22007",
      .str_error             = "Incorrect value",
      .str_user_error        = "Truncated incorrect %.*s value: '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5222, Incorrect value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5222, Truncated incorrect %.*s value: '%.*s'"
};
static const _error _error_OB_ERR_WRONG_IDENT_NAME = {
      .error_name            = "OB_ERR_WRONG_IDENT_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "wrong ident name",
      .str_user_error        = "wrong ident name",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5223, wrong ident name",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5223, wrong ident name"
};
static const _error _error_OB_WRONG_NAME_FOR_INDEX = {
      .error_name            = "OB_WRONG_NAME_FOR_INDEX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_NAME_FOR_INDEX,
      .sqlstate              = "42000",
      .str_error             = "Incorrect index name",
      .str_user_error        = "Incorrect index name '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5224, Incorrect index name",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5224, Incorrect index name '%.*s'"
};
static const _error _error_OB_ILLEGAL_REFERENCE = {
      .error_name            = "OB_ILLEGAL_REFERENCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_ILLEGAL_REFERENCE,
      .sqlstate              = "42S22",
      .str_error             = "Reference not supported (reference to group function)",
      .str_user_error        = "Reference '%.*s' not supported (reference to group function)",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5225, Reference not supported (reference to group function)",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5225, Reference '%.*s' not supported (reference to group function)"
};
static const _error _error_OB_REACH_MEMORY_LIMIT = {
      .error_name            = "OB_REACH_MEMORY_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "plan cache memory used reach the high water mark.",
      .str_user_error        = "plan cache memory used reach the high water mark.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5226, plan cache memory used reach the high water mark.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5226, plan cache memory used reach the high water mark."
};
static const _error _error_OB_ERR_PASSWORD_FORMAT = {
      .error_name            = "OB_ERR_PASSWORD_FORMAT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PASSWORD_FORMAT,
      .sqlstate              = "42000",
      .str_error             = "The password hash doesn't have the expected format. Check if the correct password algorithm is being used with the PASSWORD() function.",
      .str_user_error        = "The password hash doesn't have the expected format. Check if the correct password algorithm is being used with the PASSWORD() function.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5227, The password hash doesn't have the expected format. Check if the correct password algorithm is being used with the PASSWORD() function.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5227, The password hash doesn't have the expected format. Check if the correct password algorithm is being used with the PASSWORD() function."
};
static const _error _error_OB_ERR_NON_UPDATABLE_TABLE = {
      .error_name            = "OB_ERR_NON_UPDATABLE_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NON_UPDATABLE_TABLE,
      .sqlstate              = "HY000",
      .str_error             = "The target table is not updatable",
      .str_user_error        = "The target table %.*s of the %.*s is not updatable",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5228, The target table is not updatable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5228, The target table %.*s of the %.*s is not updatable"
};
static const _error _error_OB_ERR_WARN_DATA_OUT_OF_RANGE = {
      .error_name            = "OB_ERR_WARN_DATA_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_DATA_OUT_OF_RANGE,
      .sqlstate              = "22003",
      .str_error             = "Out of range value for column",
      .str_user_error        = "Out of range value for column '%.*s' at row %ld",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5229, Out of range value for column",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5229, Out of range value for column '%.*s' at row %ld"
};
static const _error _error_OB_ERR_WRONG_EXPR_IN_PARTITION_FUNC_ERROR = {
      .error_name            = "OB_ERR_WRONG_EXPR_IN_PARTITION_FUNC_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Constant or random or timezone-dependent expressions in (sub)partitioning function are not allowed",
      .str_user_error        = "Constant or random or timezone-dependent expressions in (sub)partitioning function are not allowed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5230, Constant or random or timezone-dependent expressions in (sub)partitioning function are not allowed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5230, Constant or random or timezone-dependent expressions in (sub)partitioning function are not allowed"
};
static const _error _error_OB_ERR_VIEW_INVALID = {
      .error_name            = "OB_ERR_VIEW_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_VIEW_INVALID,
      .sqlstate              = "42S22",
      .str_error             = "view invalid",
      .str_user_error        = "View \'%.*s.%.*s\' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them",
      .oracle_errno          = 4063,
      .oracle_str_error      = "ORA-04063: view invalid",
      .oracle_str_user_error = "ORA-04063: view '%.*s.%.*s' has errors"
};
static const _error _error_OB_ERR_OPTION_PREVENTS_STATEMENT = {
      .error_name            = "OB_ERR_OPTION_PREVENTS_STATEMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_OPTION_PREVENTS_STATEMENT,
      .sqlstate              = "HY000",
      .str_error             = "The MySQL server is running with the --read-only option so it cannot execute this statement",
      .str_user_error        = "The MySQL server is running with the --read-only option so it cannot execute this statement",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5233, The MySQL server is running with the --read-only option so it cannot execute this statement",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5233, The MySQL server is running with the --read-only option so it cannot execute this statement"
};
static const _error _error_OB_ERR_DB_READ_ONLY = {
      .error_name            = "OB_ERR_DB_READ_ONLY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The database is read only so it cannot execute this statement",
      .str_user_error        = "The database \'%.*s\' is read only so it cannot execute this statement",
      .oracle_errno          = 16000,
      .oracle_str_error      = "ORA-16000: database open for read-only access",
      .oracle_str_user_error = "ORA-16000: database \'%.*s\' open for read-only access"
};
static const _error _error_OB_ERR_TABLE_READ_ONLY = {
      .error_name            = "OB_ERR_TABLE_READ_ONLY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The table is read only so it cannot execute this statement",
      .str_user_error        = "The table \'%.*s.%.*s\' is read only so it cannot execute this statement",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5235, The table is read only so it cannot execute this statement",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5235, The table \'%.*s.%.*s\' is read only so it cannot execute this statement"
};
static const _error _error_OB_ERR_LOCK_OR_ACTIVE_TRANSACTION = {
      .error_name            = "OB_ERR_LOCK_OR_ACTIVE_TRANSACTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_LOCK_OR_ACTIVE_TRANSACTION,
      .sqlstate              = "HY000",
      .str_error             = "Can't execute the given command because you have active locked tables or an active transaction",
      .str_user_error        = "Can't execute the given command because you have active locked tables or an active transaction",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5236, Can't execute the given command because you have active locked tables or an active transaction",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5236, Can't execute the given command because you have active locked tables or an active transaction"
};
static const _error _error_OB_ERR_SAME_NAME_PARTITION_FIELD = {
      .error_name            = "OB_ERR_SAME_NAME_PARTITION_FIELD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SAME_NAME_PARTITION_FIELD,
      .sqlstate              = "HY000",
      .str_error             = "Duplicate partition field name",
      .str_user_error        = "Duplicate partition field name '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5237, Duplicate partition field name",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5237, Duplicate partition field name '%.*s'"
};
static const _error _error_OB_ERR_TABLENAME_NOT_ALLOWED_HERE = {
      .error_name            = "OB_ERR_TABLENAME_NOT_ALLOWED_HERE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TABLENAME_NOT_ALLOWED_HERE,
      .sqlstate              = "42000",
      .str_error             = "Table from one of the SELECTs cannot be used in global ORDER clause",
      .str_user_error        = "Table \'%.*s\' from one of the SELECTs cannot be used in global ORDER clause",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5238, Table from one of the SELECTs cannot be used in global ORDER clause",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5238, Table \'%.*s\' from one of the SELECTs cannot be used in global ORDER clause"
};
static const _error _error_OB_ERR_VIEW_RECURSIVE = {
      .error_name            = "OB_ERR_VIEW_RECURSIVE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_VIEW_RECURSIVE,
      .sqlstate              = "42S02",
      .str_error             = "view contains recursion",
      .str_user_error        = "\'%.*s.%.*s\' contains view recursion",
      .oracle_errno          = 1731,
      .oracle_str_error      = "ORA-01731: circular view definition encountered",
      .oracle_str_user_error = "ORA-01731: view '%.*s.%.*s' encounters circular definition"
};
static const _error _error_OB_ERR_QUALIFIER = {
      .error_name            = "OB_ERR_QUALIFIER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Column part of USING clause cannot have qualifier",
      .str_user_error        = "Column part of USING clause cannot have qualifier",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5240, Column part of USING clause cannot have qualifier",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5240, Column part of USING clause cannot have qualifier"
};
static const _error _error_OB_ERR_WRONG_VALUE = {
      .error_name            = "OB_ERR_WRONG_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_VALUE,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect value",
      .str_user_error        = "Incorrect %s value: '%s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5241, Incorrect value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5241, Incorrect %s value: '%s'"
};
static const _error _error_OB_ERR_VIEW_WRONG_LIST = {
      .error_name            = "OB_ERR_VIEW_WRONG_LIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_VIEW_WRONG_LIST,
      .sqlstate              = "HY000",
      .str_error             = "View's SELECT and view's field list have different column counts",
      .str_user_error        = "View's SELECT and view's field list have different column counts",
      .oracle_errno          = 1730,
      .oracle_str_error      = "ORA-01730: invalid number of column names specified",
      .oracle_str_user_error = "ORA-01730: invalid number of column names specified"
};
static const _error _error_OB_SYS_VARS_MAYBE_DIFF_VERSION = {
      .error_name            = "OB_SYS_VARS_MAYBE_DIFF_VERSION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "system variables' version maybe different",
      .str_user_error        = "system variables' version maybe different",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5243, system variables' version maybe different",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5243, system variables' version maybe different"
};
static const _error _error_OB_ERR_AUTO_INCREMENT_CONFLICT = {
      .error_name            = "OB_ERR_AUTO_INCREMENT_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_AUTO_INCREMENT_CONFLICT,
      .sqlstate              = "HY000",
      .str_error             = "Auto-increment value in UPDATE conflicts with internally generated values",
      .str_user_error        = "Auto-increment value in UPDATE conflicts with internally generated values",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5244, Auto-increment value in UPDATE conflicts with internally generated values",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5244, Auto-increment value in UPDATE conflicts with internally generated values"
};
static const _error _error_OB_ERR_TASK_SKIPPED = {
      .error_name            = "OB_ERR_TASK_SKIPPED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "some tasks are skipped",
      .str_user_error        = "some tasks are skipped, skipped server addr is '%s', the orginal error code is %d",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5245, some tasks are skipped",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5245, some tasks are skipped, skipped server addr is '%s', the orginal error code is %d"
};
static const _error _error_OB_ERR_NAME_BECOMES_EMPTY = {
      .error_name            = "OB_ERR_NAME_BECOMES_EMPTY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NAME_BECOMES_EMPTY,
      .sqlstate              = "HY000",
      .str_error             = "Name has become ''",
      .str_user_error        = "Name \'%.*s\' has become ''",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5246, Name has become ''",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5246, Name \'%.*s\' has become ''"
};
static const _error _error_OB_ERR_REMOVED_SPACES = {
      .error_name            = "OB_ERR_REMOVED_SPACES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_REMOVED_SPACES,
      .sqlstate              = "HY000",
      .str_error             = "Leading spaces are removed from name ",
      .str_user_error        = "Leading spaces are removed from name \'%.*s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5247, Leading spaces are removed from name ",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5247, Leading spaces are removed from name \'%.*s\'"
};
static const _error _error_OB_WARN_ADD_AUTOINCREMENT_COLUMN = {
      .error_name            = "OB_WARN_ADD_AUTOINCREMENT_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Alter table add auto_increment column is dangerous",
      .str_user_error        = "Alter table add auto_increment column is dangerous, table_name=\'%.*s\', column_name=\'%s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5248, Alter table add auto_increment column is dangerous",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5248, Alter table add auto_increment column is dangerous, table_name=\'%.*s\', column_name=\'%s\'"
};
static const _error _error_OB_WARN_CHAMGE_NULL_ATTRIBUTE = {
      .error_name            = "OB_WARN_CHAMGE_NULL_ATTRIBUTE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Alter table change nullable column to not nullable is dangerous",
      .str_user_error        = "Alter table change nullable column to not nullable is dangerous, table_name=\'%.*s\', column_name=\'%.*s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5249, Alter table change nullable column to not nullable is dangerous",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5249, Alter table change nullable column to not nullable is dangerous, table_name=\'%.*s\', column_name=\'%.*s\'"
};
static const _error _error_OB_ERR_INVALID_CHARACTER_STRING = {
      .error_name            = "OB_ERR_INVALID_CHARACTER_STRING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_CHARACTER_STRING,
      .sqlstate              = "HY000",
      .str_error             = "Invalid character string",
      .str_user_error        = "Invalid %.*s character string: \'%.*s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5250, Invalid character string",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5250, Invalid %.*s character string: \'%.*s\'"
};
static const _error _error_OB_ERR_KILL_DENIED = {
      .error_name            = "OB_ERR_KILL_DENIED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_KILL_DENIED_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "You are not owner of thread",
      .str_user_error        = "You are not owner of thread %lu",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5251, You are not owner of thread",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5251, You are not owner of thread %lu"
};
static const _error _error_OB_ERR_COLUMN_DEFINITION_AMBIGUOUS = {
      .error_name            = "OB_ERR_COLUMN_DEFINITION_AMBIGUOUS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Column definition is ambiguous. Column has both NULL and NOT NULL attributes",
      .str_user_error        = "Column \'%.*s\' definition is ambiguous. Column has both NULL and NOT NULL attributes",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5252, Column definition is ambiguous. Column has both NULL and NOT NULL attributes",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5252, Column \'%.*s\' definition is ambiguous. Column has both NULL and NOT NULL attributes"
};
static const _error _error_OB_ERR_EMPTY_QUERY = {
      .error_name            = "OB_ERR_EMPTY_QUERY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_EMPTY_QUERY,
      .sqlstate              = "42000",
      .str_error             = "Query was empty",
      .str_user_error        = "Query was empty",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5253, Query was empty",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5253, Query was empty"
};
static const _error _error_OB_ERR_CUT_VALUE_GROUP_CONCAT = {
      .error_name            = "OB_ERR_CUT_VALUE_GROUP_CONCAT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CUT_VALUE_GROUP_CONCAT,
      .sqlstate              = "42000",
      .str_error             = "Row was cut by GROUP_CONCAT()",
      .str_user_error        = "Row %ld was cut by GROUP_CONCAT()",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5254, Row was cut by GROUP_CONCAT()",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5254, Row %ld was cut by GROUP_CONCAT()"
};
static const _error _error_OB_ERR_FIELD_NOT_FOUND_PART = {
      .error_name            = "OB_ERR_FIELD_NOT_FOUND_PART",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_FIELD_NOT_FOUND_PART_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Field in list of fields for partition function not found in table",
      .str_user_error        = "Field in list of fields for partition function not found in table",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5255, Field in list of fields for partition function not found in table",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5255, Field in list of fields for partition function not found in table"
};
static const _error _error_OB_ERR_PRIMARY_CANT_HAVE_NULL = {
      .error_name            = "OB_ERR_PRIMARY_CANT_HAVE_NULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PRIMARY_CANT_HAVE_NULL,
      .sqlstate              = "42000",
      .str_error             = "All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead",
      .str_user_error        = "All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5256, All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5256, All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead"
};
static const _error _error_OB_ERR_PARTITION_FUNC_NOT_ALLOWED_ERROR = {
      .error_name            = "OB_ERR_PARTITION_FUNC_NOT_ALLOWED_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PARTITION_FUNC_NOT_ALLOWED_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "The PARTITION function returns the wrong type",
      .str_user_error        = "The PARTITION function returns the wrong type",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5257, The PARTITION function returns the wrong type",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5257, The PARTITION function returns the wrong type"
};
static const _error _error_OB_ERR_INVALID_BLOCK_SIZE = {
      .error_name            = "OB_ERR_INVALID_BLOCK_SIZE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid block size, block size should between 1024 and 1048576",
      .str_user_error        = "Invalid block size, block size should between 1024 and 1048576",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5258, Invalid block size, block size should between 1024 and 1048576",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5258, Invalid block size, block size should between 1024 and 1048576"
};
static const _error _error_OB_ERR_UNKNOWN_STORAGE_ENGINE = {
      .error_name            = "OB_ERR_UNKNOWN_STORAGE_ENGINE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNKNOWN_STORAGE_ENGINE,
      .sqlstate              = "42000",
      .str_error             = "Unknown storage engine",
      .str_user_error        = "Unknown storage engine \'%.*s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5259, Unknown storage engine",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5259, Unknown storage engine \'%.*s\'"
};
static const _error _error_OB_ERR_TENANT_IS_LOCKED = {
      .error_name            = "OB_ERR_TENANT_IS_LOCKED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Tenant is locked",
      .str_user_error        = "Tenant \'%.*s\' is locked",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5260, Tenant is locked",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5260, Tenant \'%.*s\' is locked"
};
static const _error _error_OB_EER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF = {
      .error_name            = "OB_EER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF,
      .sqlstate              = "HY000",
      .str_error             = "A UNIQUE INDEX/PRIMARY KEY must include all columns in the table's partitioning function",
      .str_user_error        = "A %s must include all columns in the table's partitioning function",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5261, A UNIQUE INDEX/PRIMARY KEY must include all columns in the table's partitioning function",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5261, A %s must include all columns in the table's partitioning function"
};
static const _error _error_OB_ERR_PARTITION_FUNCTION_IS_NOT_ALLOWED = {
      .error_name            = "OB_ERR_PARTITION_FUNCTION_IS_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,
      .sqlstate              = "HY000",
      .str_error             = "This partition function is not allowed",
      .str_user_error        = "This partition function is not allowed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5262, This partition function is not allowed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5262, This partition function is not allowed"
};
static const _error _error_OB_ERR_AGGREGATE_ORDER_FOR_UNION = {
      .error_name            = "OB_ERR_AGGREGATE_ORDER_FOR_UNION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_AGGREGATE_ORDER_FOR_UNION,
      .sqlstate              = "HY000",
      .str_error             = "aggregate order for union",
      .str_user_error        = "Expression #%d of ORDER BY contains aggregate function and applies to a UNION",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5263, aggregate order for union",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5263, Expression #%d of ORDER BY contains aggregate function and applies to a UNION"
};
static const _error _error_OB_ERR_OUTLINE_EXIST = {
      .error_name            = "OB_ERR_OUTLINE_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Outline exists",
      .str_user_error        = "Outline '%.*s' already exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5264, Outline exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5264, Outline '%.*s' already exists"
};
static const _error _error_OB_OUTLINE_NOT_EXIST = {
      .error_name            = "OB_OUTLINE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Outline not exists",
      .str_user_error        = "Outline \'%.*s.%.*s\' doesn\'t exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5265, Outline not exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5265, Outline \'%.*s.%.*s\' doesn\'t exist"
};
static const _error _error_OB_WARN_OPTION_BELOW_LIMIT = {
      .error_name            = "OB_WARN_OPTION_BELOW_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = WARN_OPTION_BELOW_LIMIT,
      .sqlstate              = "HY000",
      .str_error             = "The value should be no less than the limit",
      .str_user_error        = "The value of \'%s\' should be no less than the value of \'%s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5266, The value should be no less than the limit",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5266, The value of \'%s\' should be no less than the value of \'%s\'"
};
static const _error _error_OB_INVALID_OUTLINE = {
      .error_name            = "OB_INVALID_OUTLINE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid outline",
      .str_user_error        = "invalid outline ,error info:%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5267, invalid outline",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5267, invalid outline ,error info:%s"
};
static const _error _error_OB_REACH_MAX_CONCURRENT_NUM = {
      .error_name            = "OB_REACH_MAX_CONCURRENT_NUM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "SQL reach max concurrent num",
      .str_user_error        = "SQL reach max concurrent num %ld",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5268, SQL reach max concurrent num",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5268, SQL reach max concurrent num %ld"
};
static const _error _error_OB_ERR_OPERATION_ON_RECYCLE_OBJECT = {
      .error_name            = "OB_ERR_OPERATION_ON_RECYCLE_OBJECT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "can not perform DDL/DML over objects in Recycle Bin",
      .str_user_error        = "can not perform DDL/DML over objects in Recycle Bin",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5269, can not perform DDL/DML over objects in Recycle Bin",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5269, can not perform DDL/DML over objects in Recycle Bin"
};
static const _error _error_OB_ERR_OBJECT_NOT_IN_RECYCLEBIN = {
      .error_name            = "OB_ERR_OBJECT_NOT_IN_RECYCLEBIN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "object not in RECYCLE BIN",
      .str_user_error        = "object not in RECYCLE BIN",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5270, object not in RECYCLE BIN",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5270, object not in RECYCLE BIN"
};
static const _error _error_OB_ERR_CON_COUNT_ERROR = {
      .error_name            = "OB_ERR_CON_COUNT_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CON_COUNT_ERROR,
      .sqlstate              = "08004",
      .str_error             = "Too many connections",
      .str_user_error        = "Too many connections",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5271, Too many connections",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5271, Too many connections"
};
static const _error _error_OB_ERR_OUTLINE_CONTENT_EXIST = {
      .error_name            = "OB_ERR_OUTLINE_CONTENT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Outline content already exists when added",
      .str_user_error        = "Outline content '%.*s' of outline '%.*s' already exists when added",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5272, Outline content already exists when added",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5272, Outline content '%.*s' of outline '%.*s' already exists when added"
};
static const _error _error_OB_ERR_OUTLINE_MAX_CONCURRENT_EXIST = {
      .error_name            = "OB_ERR_OUTLINE_MAX_CONCURRENT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Max concurrent already exists when added",
      .str_user_error        = "Max concurrent in outline '%.*s' already exists when added",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5273, Max concurrent already exists when added",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5273, Max concurrent in outline '%.*s' already exists when added"
};
static const _error _error_OB_ERR_VALUES_IS_NOT_INT_TYPE_ERROR = {
      .error_name            = "OB_ERR_VALUES_IS_NOT_INT_TYPE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_VALUES_IS_NOT_INT_TYPE_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "VALUES value for partition must have type INT",
      .str_user_error        = "VALUES value for partition \'%.*s\' must have type INT",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5274, VALUES value for partition must have type INT",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5274, VALUES value for partition \'%.*s\' must have type INT"
};
static const _error _error_OB_ERR_WRONG_TYPE_COLUMN_VALUE_ERROR = {
      .error_name            = "OB_ERR_WRONG_TYPE_COLUMN_VALUE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_TYPE_COLUMN_VALUE_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Partition column values of incorrect type",
      .str_user_error        = "Partition column values of incorrect type",
      .oracle_errno          = 14019,
      .oracle_str_error      = "ORA-14019: partition bound element must be one of: string, datetime or interval literal, number, or MAXVALUE",
      .oracle_str_user_error = "ORA-14019: partition bound element must be one of: string, datetime or interval literal, number, or MAXVALUE"
};
static const _error _error_OB_ERR_PARTITION_COLUMN_LIST_ERROR = {
      .error_name            = "OB_ERR_PARTITION_COLUMN_LIST_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PARTITION_COLUMN_LIST_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Inconsistency in usage of column lists for partitioning",
      .str_user_error        = "Inconsistency in usage of column lists for partitioning",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5276, Inconsistency in usage of column lists for partitioning",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5276, Inconsistency in usage of column lists for partitioning"
};
static const _error _error_OB_ERR_TOO_MANY_VALUES_ERROR = {
      .error_name            = "OB_ERR_TOO_MANY_VALUES_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_MANY_VALUES_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Cannot have more than one value for this type of RANGE partitioning",
      .str_user_error        = "Cannot have more than one value for this type of RANGE partitioning",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5277, Cannot have more than one value for this type of RANGE partitioning",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5277, Cannot have more than one value for this type of RANGE partitioning"
};
static const _error _error_OB_ERR_PARTITION_VALUE_ERROR = {
      .error_name            = "OB_ERR_PARTITION_VALUE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "This partition value with incorrect charset type",
      .str_user_error        = "This partition value with incorrect charset type",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5278, This partition value with incorrect charset type",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5278, This partition value with incorrect charset type"
};
static const _error _error_OB_ERR_PARTITION_INTERVAL_ERROR = {
      .error_name            = "OB_ERR_PARTITION_INTERVAL_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Partition interval must have type INT",
      .str_user_error        = "Partition interval must have type INT",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5279, Partition interval must have type INT",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5279, Partition interval must have type INT"
};
static const _error _error_OB_ERR_SAME_NAME_PARTITION = {
      .error_name            = "OB_ERR_SAME_NAME_PARTITION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SAME_NAME_PARTITION,
      .sqlstate              = "HY000",
      .str_error             = "Duplicate partition name",
      .str_user_error        = "Duplicate partition name \'%.*s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5280, Duplicate partition name",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5280, Duplicate partition name \'%.*s\'"
};
static const _error _error_OB_ERR_RANGE_NOT_INCREASING_ERROR = {
      .error_name            = "OB_ERR_RANGE_NOT_INCREASING_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_RANGE_NOT_INCREASING_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "VALUES LESS THAN value must be strictly increasing for each partition",
      .str_user_error        = "VALUES LESS THAN value must be strictly increasing for each partition%.*s",
      .oracle_errno          = 14037,
      .oracle_str_error      = "ORA-14037: partition bound is too high",
      .oracle_str_user_error = "ORA-14037: partition bound of partition '%.*s' is too high"
};
static const _error _error_OB_ERR_PARSE_PARTITION_RANGE = {
      .error_name            = "OB_ERR_PARSE_PARTITION_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PARSE_ERROR,
      .sqlstate              = "42000",
      .str_error             = "Wrong number of partitions defined, mismatch with previous setting",
      .str_user_error        = "Wrong number of partitions defined, mismatch with previous setting",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5282, Wrong number of partitions defined, mismatch with previous setting",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5282, Wrong number of partitions defined, mismatch with previous setting"
};
static const _error _error_OB_ERR_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF = {
      .error_name            = "OB_ERR_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF,
      .sqlstate              = "HY000",
      .str_error             = "A PRIMARY KEY must include all columns in the table\'s partitioning function",
      .str_user_error        = "A PRIMARY KEY must include all columns in the table\'s partitioning function",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5283, A PRIMARY KEY must include all columns in the table\'s partitioning function",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5283, A PRIMARY KEY must include all columns in the table\'s partitioning function"
};
static const _error _error_OB_NO_PARTITION_FOR_GIVEN_VALUE = {
      .error_name            = "OB_NO_PARTITION_FOR_GIVEN_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NO_PARTITION_FOR_GIVEN_VALUE,
      .sqlstate              = "HY000",
      .str_error             = "Table has no partition for value",
      .str_user_error        = "Table has no partition for value",
      .oracle_errno          = 14400,
      .oracle_str_error      = "ORA-14400: inserted partition key does not map to any partition",
      .oracle_str_user_error = "ORA-14400: inserted partition key does not map to any partition"
};
static const _error _error_OB_EER_NULL_IN_VALUES_LESS_THAN = {
      .error_name            = "OB_EER_NULL_IN_VALUES_LESS_THAN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NULL_IN_VALUES_LESS_THAN,
      .sqlstate              = "HY000",
      .str_error             = "Not allowed to use NULL value in VALUES LESS THAN",
      .str_user_error        = "Not allowed to use NULL value in VALUES LESS THAN",
      .oracle_errno          = 14019,
      .oracle_str_error      = "ORA-14019: partition bound element must be one of: datetime or interval literal, number, or MAXVALUE",
      .oracle_str_user_error = "ORA-14019: partition bound element must be one of: datetime or interval literal, number, or MAXVALUE"
};
static const _error _error_OB_ERR_PARTITION_CONST_DOMAIN_ERROR = {
      .error_name            = "OB_ERR_PARTITION_CONST_DOMAIN_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PARTITION_CONST_DOMAIN_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Partition constant is out of partition function domain",
      .str_user_error        = "Partition constant is out of partition function domain",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5286, Partition constant is out of partition function domain",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5286, Partition constant is out of partition function domain"
};
static const _error _error_OB_ERR_TOO_MANY_PARTITION_FUNC_FIELDS = {
      .error_name            = "OB_ERR_TOO_MANY_PARTITION_FUNC_FIELDS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Too many fields in \'list of partition fields\'",
      .str_user_error        = "Too many fields in \'list of partition fields\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5287, Too many fields in \'list of partition fields\'",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5287, Too many fields in \'list of partition fields\'"
};
static const _error _error_OB_ERR_BAD_FT_COLUMN = {
      .error_name            = "OB_ERR_BAD_FT_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_BAD_FT_COLUMN,
      .sqlstate              = "HY000",
      .str_error             = "Column cannot be part of FULLTEXT index",
      .str_user_error        = "Column '%.*s' cannot be part of FULLTEXT index",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5288, Column cannot be part of FULLTEXT index",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5288, Column '%.*s' cannot be part of FULLTEXT index"
};
static const _error _error_OB_ERR_KEY_DOES_NOT_EXISTS = {
      .error_name            = "OB_ERR_KEY_DOES_NOT_EXISTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_KEY_DOES_NOT_EXITS,
      .sqlstate              = "42000",
      .str_error             = "key does not exist in table",
      .str_user_error        = "Key '%.*s' doesn't exist in table '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5289, key does not exist in table",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5289, Key '%.*s' doesn't exist in table '%.*s'"
};
static const _error _error_OB_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN = {
      .error_name            = "OB_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN,
      .sqlstate              = "HY000",
      .str_error             = "non-default value for generated column is not allowed",
      .str_user_error        = "The value specified for generated column '%.*s' in table '%.*s' is not allowed",
      .oracle_errno          = 54013,
      .oracle_str_error      = "ORA-54013: INSERT operation disallowed on virtual columns",
      .oracle_str_user_error = "ORA-54013: INSERT operation disallowed on virtual columns '%.*s'.'%.*s'"
};
static const _error _error_OB_ERR_BAD_CTXCAT_COLUMN = {
      .error_name            = "OB_ERR_BAD_CTXCAT_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The CTXCAT column must be contiguous in the index column list",
      .str_user_error        = "The CTXCAT column must be contiguous in the index column list",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5291, The CTXCAT column must be contiguous in the index column list",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5291, The CTXCAT column must be contiguous in the index column list"
};
static const _error _error_OB_ERR_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN = {
      .error_name            = "OB_ERR_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN,
      .sqlstate              = "HY000",
      .str_error             = "not supported for generated columns",
      .str_user_error        = "'%s' is not supported for generated columns.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5292, not supported for generated columns",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5292, '%s' is not supported for generated columns."
};
static const _error _error_OB_ERR_DEPENDENT_BY_GENERATED_COLUMN = {
      .error_name            = "OB_ERR_DEPENDENT_BY_GENERATED_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DEPENDENT_BY_GENERATED_COLUMN,
      .sqlstate              = "HY000",
      .str_error             = "Column has a generated column dependency",
      .str_user_error        = "Column '%.*s' has a generated column dependency",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5293, Column has a generated column dependency",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5293, Column '%.*s' has a generated column dependency"
};
static const _error _error_OB_ERR_TOO_MANY_ROWS = {
      .error_name            = "OB_ERR_TOO_MANY_ROWS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_MANY_ROWS,
      .sqlstate              = "42000",
      .str_error             = "Result consisted of more than one row",
      .str_user_error        = "Result consisted of more than one row",
      .oracle_errno          = 1422,
      .oracle_str_error      = "ORA-01422: exact fetch returns more than requested number of rows",
      .oracle_str_user_error = "ORA-01422: exact fetch returns more than requested number of rows"
};
static const _error _error_OB_WRONG_FIELD_TERMINATORS = {
      .error_name            = "OB_WRONG_FIELD_TERMINATORS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_FIELD_TERMINATORS,
      .sqlstate              = "42000",
      .str_error             = "Field separator argument is not what is expected; check the manual",
      .str_user_error        = "Field separator argument is not what is expected; check the manual",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5295, Field separator argument is not what is expected; check the manual",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5295, Field separator argument is not what is expected; check the manual"
};
static const _error _error_OB_NO_READABLE_REPLICA = {
      .error_name            = "OB_NO_READABLE_REPLICA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "there has no readable replica",
      .str_user_error        = "there has no readable replica",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5296, there has no readable replica",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5296, there has no readable replica"
};
static const _error _error_OB_ERR_UNEXPECTED_TZ_TRANSITION = {
      .error_name            = "OB_ERR_UNEXPECTED_TZ_TRANSITION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unexpected time zone info transition",
      .str_user_error        = "unexpected time zone info transition",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5297, unexpected time zone info transition",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5297, unexpected time zone info transition"
};
static const _error _error_OB_ERR_SYNONYM_EXIST = {
      .error_name            = "OB_ERR_SYNONYM_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "synonym exists",
      .str_user_error        = "synonym '%.*s' already exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5298, synonym exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5298, synonym '%.*s' already exists"
};
static const _error _error_OB_SYNONYM_NOT_EXIST = {
      .error_name            = "OB_SYNONYM_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "synonym not exists",
      .str_user_error        = "synonym \'%.*s.%.*s\' doesn\'t exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5299, synonym not exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5299, synonym \'%.*s.%.*s\' doesn\'t exist"
};
static const _error _error_OB_ERR_MISS_ORDER_BY_EXPR = {
      .error_name            = "OB_ERR_MISS_ORDER_BY_EXPR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "missing ORDER BY expression in the window specification",
      .str_user_error        = "missing ORDER BY expression in the window specification",
      .oracle_errno          = 30485,
      .oracle_str_error      = "ORA-30485: missing ORDER BY expression in the window specification",
      .oracle_str_user_error = "ORA-30485: missing ORDER BY expression in the window specification"
};
static const _error _error_OB_ERR_NOT_CONST_EXPR = {
      .error_name            = "OB_ERR_NOT_CONST_EXPR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The argument of the window function should be a constant for a partition",
      .str_user_error        = "The argument of the window function should be a constant for a partition",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5301, The argument of the window function should be a constant for a partition",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5301, The argument of the window function should be a constant for a partition"
};
static const _error _error_OB_ERR_PARTITION_MGMT_ON_NONPARTITIONED = {
      .error_name            = "OB_ERR_PARTITION_MGMT_ON_NONPARTITIONED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PARTITION_MGMT_ON_NONPARTITIONED,
      .sqlstate              = "HY000",
      .str_error             = "Partition management on a not partitioned table is not possible",
      .str_user_error        = "Partition management on a not partitioned table is not possible",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5302, Partition management on a not partitioned table is not possible",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5302, Partition management on a not partitioned table is not possible"
};
static const _error _error_OB_ERR_DROP_PARTITION_NON_EXISTENT = {
      .error_name            = "OB_ERR_DROP_PARTITION_NON_EXISTENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DROP_PARTITION_NON_EXISTENT,
      .sqlstate              = "HY000",
      .str_error             = "Error in list of partitions to DROP",
      .str_user_error        = "Error in list of partitions to DROP",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5303, Error in list of partitions to DROP",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5303, Error in list of partitions to DROP"
};
static const _error _error_OB_ERR_PARTITION_MGMT_ON_TWOPART_TABLE = {
      .error_name            = "OB_ERR_PARTITION_MGMT_ON_TWOPART_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Partition management on a two-part table is not possible",
      .str_user_error        = "Partition management on a two-part table is not possible",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5304, Partition management on a two-part table is not possible",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5304, Partition management on a two-part table is not possible"
};
static const _error _error_OB_ERR_ONLY_ON_RANGE_LIST_PARTITION = {
      .error_name            = "OB_ERR_ONLY_ON_RANGE_LIST_PARTITION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_ONLY_ON_RANGE_LIST_PARTITION,
      .sqlstate              = "HY000",
      .str_error             = "can only be used on RANGE/LIST partitions",
      .str_user_error        = "%s PARTITION can only be used on RANGE/LIST partitions",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5305, can only be used on RANGE/LIST partitions",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5305, %s PARTITION can only be used on RANGE/LIST partitions"
};
static const _error _error_OB_ERR_DROP_LAST_PARTITION = {
      .error_name            = "OB_ERR_DROP_LAST_PARTITION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DROP_LAST_PARTITION,
      .sqlstate              = "HY000",
      .str_error             = "Cannot remove all partitions, use DROP TABLE instead",
      .str_user_error        = "Cannot remove all partitions, use DROP TABLE instead",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5306, Cannot remove all partitions, use DROP TABLE instead",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5306, Cannot remove all partitions, use DROP TABLE instead"
};
static const _error _error_OB_ERR_PARALLEL_SERVERS_TARGET_NOT_ENOUGH = {
      .error_name            = "OB_ERR_PARALLEL_SERVERS_TARGET_NOT_ENOUGH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Not enough thread resource to execute the query. Maybe parallel_servers_target was set too low.",
      .str_user_error        = "Not enough thread resource to execute the query. Require setting parallel_servers_target to a value no less than %ld for this query",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5307, Not enough thread resource to execute the query. Maybe parallel_servers_target was set too low.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5307, Not enough thread resource to execute the query. Require setting parallel_servers_target to a value no less than %ld for this query"
};
static const _error _error_OB_ERR_IGNORE_USER_HOST_NAME = {
      .error_name            = "OB_ERR_IGNORE_USER_HOST_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Ignore the host name",
      .str_user_error        = "Ignore the host name",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5308, Ignore the host name",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5308, Ignore the host name"
};
static const _error _error_OB_IGNORE_SQL_IN_RESTORE = {
      .error_name            = "OB_IGNORE_SQL_IN_RESTORE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Ignore sql in restore process",
      .str_user_error        = "Ignore sql in restore process",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5309, Ignore sql in restore process",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5309, Ignore sql in restore process"
};
static const _error _error_OB_ERR_TEMPORARY_TABLE_WITH_PARTITION = {
      .error_name            = "OB_ERR_TEMPORARY_TABLE_WITH_PARTITION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PARTITION_NO_TEMPORARY,
      .sqlstate              = "HY000",
      .str_error             = "Cannot create temporary table with partitions",
      .str_user_error        = "Cannot create temporary table with partitions",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5310, Cannot create temporary table with partitions",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5310, Cannot create temporary table with partitions"
};
static const _error _error_OB_ERR_INVALID_COLUMN_ID = {
      .error_name            = "OB_ERR_INVALID_COLUMN_ID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid column id",
      .str_user_error        = "Invalid column id for %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5311, Invalid column id",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5311, Invalid column id for %.*s"
};
static const _error _error_OB_SYNC_DDL_DUPLICATE = {
      .error_name            = "OB_SYNC_DDL_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Duplicated ddl id",
      .str_user_error        = "Duplicated ddl id '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5312, Duplicated ddl id",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5312, Duplicated ddl id '%.*s'"
};
static const _error _error_OB_SYNC_DDL_ERROR = {
      .error_name            = "OB_SYNC_DDL_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Failed to sync ddl",
      .str_user_error        = "Failed to sync ddl '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5313, Failed to sync ddl",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5313, Failed to sync ddl '%.*s'"
};
static const _error _error_OB_ERR_ROW_IS_REFERENCED = {
      .error_name            = "OB_ERR_ROW_IS_REFERENCED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_ROW_IS_REFERENCED_2,
      .sqlstate              = "23000",
      .str_error             = "Cannot delete or update a parent row: a foreign key constraint fails",
      .str_user_error        = "Cannot delete or update a parent row: a foreign key constraint fails",
      .oracle_errno          = 2292,
      .oracle_str_error      = "ORA-02292: integrity constraint violated - child record found",
      .oracle_str_user_error = "ORA-02292: integrity constraint violated - child record found"
};
static const _error _error_OB_ERR_NO_REFERENCED_ROW = {
      .error_name            = "OB_ERR_NO_REFERENCED_ROW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NO_REFERENCED_ROW_2,
      .sqlstate              = "23000",
      .str_error             = "Cannot add or update a child row: a foreign key constraint fails",
      .str_user_error        = "Cannot add or update a child row: a foreign key constraint fails",
      .oracle_errno          = 2291,
      .oracle_str_error      = "ORA-02291: integrity constraint violated - parent key not found",
      .oracle_str_user_error = "ORA-02291: integrity constraint violated - parent key not found"
};
static const _error _error_OB_ERR_FUNC_RESULT_TOO_LARGE = {
      .error_name            = "OB_ERR_FUNC_RESULT_TOO_LARGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_ALLOWED_PACKET_OVERFLOWED,
      .sqlstate              = "HY000",
      .str_error             = "Result of function was larger than max_allowed_packet - truncated",
      .str_user_error        = "Result of %s() was larger than max_allowed_packet (%d) - truncated",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5316, Result of function was larger than max_allowed_packet - truncated",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5316, Result of %s() was larger than max_allowed_packet (%d) - truncated"
};
static const _error _error_OB_ERR_CANNOT_ADD_FOREIGN = {
      .error_name            = "OB_ERR_CANNOT_ADD_FOREIGN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANNOT_ADD_FOREIGN,
      .sqlstate              = "HY000",
      .str_error             = "Cannot add foreign key constraint",
      .str_user_error        = "Cannot add foreign key constraint",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5317, Cannot add foreign key constraint",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5317, Cannot add foreign key constraint"
};
static const _error _error_OB_ERR_WRONG_FK_DEF = {
      .error_name            = "OB_ERR_WRONG_FK_DEF",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_FK_DEF,
      .sqlstate              = "42000",
      .str_error             = "Incorrect foreign key definition: Key reference and table reference don't match",
      .str_user_error        = "Incorrect foreign key definition: Key reference and table reference don't match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5318, Incorrect foreign key definition: Key reference and table reference don't match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5318, Incorrect foreign key definition: Key reference and table reference don't match"
};
static const _error _error_OB_ERR_INVALID_CHILD_COLUMN_LENGTH_FK = {
      .error_name            = "OB_ERR_INVALID_CHILD_COLUMN_LENGTH_FK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid child column length",
      .str_user_error        = "Child column \'%.*s\' data length cannot be less than parent column \'%.*s\' data length",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5319, Invalid child column length",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5319, Child column \'%.*s\' data length cannot be less than parent column \'%.*s\' data length"
};
static const _error _error_OB_ERR_ALTER_COLUMN_FK = {
      .error_name            = "OB_ERR_ALTER_COLUMN_FK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Cannot alter foreign key column",
      .str_user_error        = "\'%.*s\': used in a foreign key constraint",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5320, Cannot alter foreign key column",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5320, \'%.*s\': used in a foreign key constraint"
};
static const _error _error_OB_ERR_CONNECT_BY_REQUIRED = {
      .error_name            = "OB_ERR_CONNECT_BY_REQUIRED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "CONNECT BY clause required in this query block",
      .str_user_error        = "CONNECT BY clause required in this query block",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5321, CONNECT BY clause required in this query block",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5321, CONNECT BY clause required in this query block"
};
static const _error _error_OB_ERR_INVALID_PSEUDO_COLUMN_PLACE = {
      .error_name            = "OB_ERR_INVALID_PSEUDO_COLUMN_PLACE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Specified pseudocolumn, operator or function not allowed here",
      .str_user_error        = "Specified pseudocolumn, operator or function not allowed here",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5322, Specified pseudocolumn, operator or function not allowed here",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5322, Specified pseudocolumn, operator or function not allowed here"
};
static const _error _error_OB_ERR_NOCYCLE_REQUIRED = {
      .error_name            = "OB_ERR_NOCYCLE_REQUIRED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "NOCYCLE keyword is required with CONNECT_BY_ISCYCLE pseudocolumn",
      .str_user_error        = "NOCYCLE keyword is required with CONNECT_BY_ISCYCLE pseudocolumn",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5323, NOCYCLE keyword is required with CONNECT_BY_ISCYCLE pseudocolumn",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5323, NOCYCLE keyword is required with CONNECT_BY_ISCYCLE pseudocolumn"
};
static const _error _error_OB_ERR_CONNECT_BY_LOOP = {
      .error_name            = "OB_ERR_CONNECT_BY_LOOP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "CONNECT BY loop in user data",
      .str_user_error        = "CONNECT BY loop in user data",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5324, CONNECT BY loop in user data",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5324, CONNECT BY loop in user data"
};
static const _error _error_OB_ERR_INVALID_SIBLINGS = {
      .error_name            = "OB_ERR_INVALID_SIBLINGS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ORDER SIBLINGS BY clause not allowed here",
      .str_user_error        = "ORDER SIBLINGS BY clause not allowed here",
      .oracle_errno          = 30929,
      .oracle_str_error      = "ORA-30929: ORDER SIBLINGS BY clause not allowed here",
      .oracle_str_user_error = "ORA-30929: ORDER SIBLINGS BY clause not allowed here"
};
static const _error _error_OB_ERR_INVALID_SEPARATOR = {
      .error_name            = "OB_ERR_INVALID_SEPARATOR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "when using SYS_CONNECT_BY_PATH function, cannot have separator as part of column value",
      .str_user_error        = "when using SYS_CONNECT_BY_PATH function, cannot have separator as part of column value",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5326, when using SYS_CONNECT_BY_PATH function, cannot have separator as part of column value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5326, when using SYS_CONNECT_BY_PATH function, cannot have separator as part of column value"
};
static const _error _error_OB_ERR_INVALID_SYNONYM_NAME = {
      .error_name            = "OB_ERR_INVALID_SYNONYM_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Database can not be specified in public synonym",
      .str_user_error        = "Database can not be specified in public synonym",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5327, Database can not be specified in public synonym",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5327, Database can not be specified in public synonym"
};
static const _error _error_OB_ERR_LOOP_OF_SYNONYM = {
      .error_name            = "OB_ERR_LOOP_OF_SYNONYM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Looping chain of synonyms",
      .str_user_error        = "Looping chain of synonyms",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5328, Looping chain of synonyms",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5328, Looping chain of synonyms"
};
static const _error _error_OB_ERR_SYNONYM_SAME_AS_OBJECT = {
      .error_name            = "OB_ERR_SYNONYM_SAME_AS_OBJECT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Cannot create a synonym with same name as object",
      .str_user_error        = "Cannot create a synonym with same name as object",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5329, Cannot create a synonym with same name as object",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5329, Cannot create a synonym with same name as object"
};
static const _error _error_OB_ERR_SYNONYM_TRANSLATION_INVALID = {
      .error_name            = "OB_ERR_SYNONYM_TRANSLATION_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Synonym translation is no longer valid",
      .str_user_error        = "Synonym %s translation is no longer valid",
      .oracle_errno          = 980,
      .oracle_str_error      = "ORA-00980: synonym translation is no longer valid",
      .oracle_str_user_error = "ORA-00980: synonym %s translation is no longer valid"
};
static const _error _error_OB_ERR_EXIST_OBJECT = {
      .error_name            = "OB_ERR_EXIST_OBJECT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "name is already used by an existing object",
      .str_user_error        = "name is already used by an existing object",
      .oracle_errno          = 955,
      .oracle_str_error      = "ORA-00955: name is already used by an existing object",
      .oracle_str_user_error = "ORA-00955: name is already used by an existing object"
};
static const _error _error_OB_ERR_ILLEGAL_VALUE_FOR_TYPE = {
      .error_name            = "OB_ERR_ILLEGAL_VALUE_FOR_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_ILLEGAL_VALUE_FOR_TYPE,
      .sqlstate              = "22007",
      .str_error             = "Illegal value found during parsing",
      .str_user_error        = "Illegal %s '%.*s' value found during parsing",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5332, Illegal value found during parsing",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5332, Illegal %s '%.*s' value found during parsing"
};
static const _error _error_OB_ER_TOO_LONG_SET_ENUM_VALUE = {
      .error_name            = "OB_ER_TOO_LONG_SET_ENUM_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_LONG_SET_ENUM_VALUE,
      .sqlstate              = "HY000",
      .str_error             = "Too long enumeration/set value for column.",
      .str_user_error        = "Too long enumeration/set value for column %.*s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5333, Too long enumeration/set value for column.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5333, Too long enumeration/set value for column %.*s."
};
static const _error _error_OB_ER_DUPLICATED_VALUE_IN_TYPE = {
      .error_name            = "OB_ER_DUPLICATED_VALUE_IN_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DUPLICATED_VALUE_IN_TYPE,
      .sqlstate              = "HY000",
      .str_error             = "Column has duplicated value",
      .str_user_error        = "Column '%.*s' has duplicated value '%.*s' in %s ",
      .oracle_errno          = 1,
      .oracle_str_error      = "ORA-00001: unique constraint violated",
      .oracle_str_user_error = "ORA-00001: unique constraint violated, column '%.*s' with value '%.*s' in %s"
};
static const _error _error_OB_ER_TOO_BIG_ENUM = {
      .error_name            = "OB_ER_TOO_BIG_ENUM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_BIG_ENUM,
      .sqlstate              = "HY000",
      .str_error             = "Too many enumeration values for column",
      .str_user_error        = "Too many enumeration values for column %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5335, Too many enumeration values for column",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5335, Too many enumeration values for column %.*s"
};
static const _error _error_OB_ERR_TOO_BIG_SET = {
      .error_name            = "OB_ERR_TOO_BIG_SET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_BIG_SET,
      .sqlstate              = "HY000",
      .str_error             = "Too many strings for column",
      .str_user_error        = "Too many strings for column %.*s and SET",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5336, Too many strings for column",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5336, Too many strings for column %.*s and SET"
};
static const _error _error_OB_ERR_WRONG_ROWID = {
      .error_name            = "OB_ERR_WRONG_ROWID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "rowid is wrong",
      .str_user_error        = "rowid is wrong",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5337, rowid is wrong",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5337, rowid is wrong"
};
static const _error _error_OB_ERR_INVALID_WINDOW_FUNCTION_PLACE = {
      .error_name            = "OB_ERR_INVALID_WINDOW_FUNCTION_PLACE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Window Function not allowed here",
      .str_user_error        = "Window Function not allowed here",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5338, Window Function not allowed here",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5338, Window Function not allowed here"
};
static const _error _error_OB_ERR_PARSE_PARTITION_LIST = {
      .error_name            = "OB_ERR_PARSE_PARTITION_LIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Fail to parse list partition",
      .str_user_error        = "Fail to parse list partition",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5339, Fail to parse list partition",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5339, Fail to parse list partition"
};
static const _error _error_OB_ERR_MULTIPLE_DEF_CONST_IN_LIST_PART = {
      .error_name            = "OB_ERR_MULTIPLE_DEF_CONST_IN_LIST_PART",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Multiple definition of same constant in list partitioning",
      .str_user_error        = "Multiple definition of same constant in list partitioning",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5340, Multiple definition of same constant in list partitioning",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5340, Multiple definition of same constant in list partitioning"
};
static const _error _error_OB_ERR_INVALID_TIMEZONE_REGION_ID = {
      .error_name            = "OB_ERR_INVALID_TIMEZONE_REGION_ID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "timezone region ID is invalid",
      .str_user_error        = "timezone region ID is invalid",
      .oracle_errno          = 1881,
      .oracle_str_error      = "ORA-01881: timezone region ID is invalid",
      .oracle_str_user_error = "ORA-01881: timezone region ID is invalid"
};
static const _error _error_OB_ERR_INVALID_HEX_NUMBER = {
      .error_name            = "OB_ERR_INVALID_HEX_NUMBER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid hex number",
      .str_user_error        = "invalid hex number",
      .oracle_errno          = 1465,
      .oracle_str_error      = "ORA-01465: invalid hex number",
      .oracle_str_user_error = "ORA-01465: invalid hex number"
};
static const _error _error_OB_ERR_WRONG_FUNC_ARGUMENTS_TYPE = {
      .error_name            = "OB_ERR_WRONG_FUNC_ARGUMENTS_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "wrong number or types of arguments in function",
      .str_user_error        = "wrong number or types of arguments in call to '%.*s'",
      .oracle_errno          = 6553,
      .oracle_str_error      = "ORA-06553: wrong number or types of arguments in function",
      .oracle_str_user_error = "ORA-06553: wrong number or types of arguments in call to '%.*s'"
};
static const _error _error_OB_ERR_MULTI_UPDATE_KEY_CONFLICT = {
      .error_name            = "OB_ERR_MULTI_UPDATE_KEY_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_MULTI_UPDATE_KEY_CONFLICT,
      .sqlstate              = "HY000",
      .str_error             = "Primary key/index key/partition key update is not allowed",
      .str_user_error        = "Primary key/index key/partition key update is not allowed since the table is updated both as '%.*s' and '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5344, Primary key/index key/partition key update is not allowed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5344, Primary key/index key/partition key update is not allowed since the table is updated both as '%.*s' and '%.*s'"
};
static const _error _error_OB_ERR_INSUFFICIENT_PX_WORKER = {
      .error_name            = "OB_ERR_INSUFFICIENT_PX_WORKER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "insufficient parallel query worker available",
      .str_user_error        = "insufficient parallel query worker available",
      .oracle_errno          = 12827,
      .oracle_str_error      = "ORA-12827: insufficient parallel query worker available",
      .oracle_str_user_error = "ORA-12827: insufficient parallel query worker available"
};
static const _error _error_OB_ERR_FOR_UPDATE_EXPR_NOT_ALLOWED = {
      .error_name            = "OB_ERR_FOR_UPDATE_EXPR_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "FOR UPDATE of this query expression is not allowed",
      .str_user_error        = "FOR UPDATE of this query expression is not allowed",
      .oracle_errno          = 1786,
      .oracle_str_error      = "ORA-01786: FOR UPDATE of this query expression is not allowed",
      .oracle_str_user_error = "ORA-01786: FOR UPDATE of this query expression is not allowed"
};
static const _error _error_OB_ERR_WIN_FUNC_ARG_NOT_IN_PARTITION_BY = {
      .error_name            = "OB_ERR_WIN_FUNC_ARG_NOT_IN_PARTITION_BY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "argument should be a function of expressions in PARTITION BY",
      .str_user_error        = "argument should be a function of expressions in PARTITION BY",
      .oracle_errno          = 30488,
      .oracle_str_error      = "ORA-30488: argument should be a function of expressions in PARTITION BY",
      .oracle_str_user_error = "ORA-30488: argument should be a function of expressions in PARTITION BY"
};
static const _error _error_OB_ERR_TOO_LONG_STRING_IN_CONCAT = {
      .error_name            = "OB_ERR_TOO_LONG_STRING_IN_CONCAT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "result of string concatenation is too long",
      .str_user_error        = "result of string concatenation is too long",
      .oracle_errno          = 1489,
      .oracle_str_error      = "ORA-01489: result of string concatenation is too long",
      .oracle_str_user_error = "ORA-01489: result of string concatenation is too long"
};
static const _error _error_OB_ERR_WRONG_TIMESTAMP_LTZ_COLUMN_VALUE_ERROR = {
      .error_name            = "OB_ERR_WRONG_TIMESTAMP_LTZ_COLUMN_VALUE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_TYPE_COLUMN_VALUE_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Partition column values of incorrect type",
      .str_user_error        = "Partition column values of incorrect type",
      .oracle_errno          = 30078,
      .oracle_str_error      = "ORA-30078: partition bound must be TIME/TIMESTAMP WITH TIME ZONE literals",
      .oracle_str_user_error = "ORA-30078: partition bound must be TIME/TIMESTAMP WITH TIME ZONE literals"
};
static const _error _error_OB_ERR_UPD_CAUSE_PART_CHANGE = {
      .error_name            = "OB_ERR_UPD_CAUSE_PART_CHANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "updating partition key column would cause a partition change",
      .str_user_error        = "updating partition key column would cause a partition change",
      .oracle_errno          = 14402,
      .oracle_str_error      = "ORA-14402: updating partition key column would cause a partition change",
      .oracle_str_user_error = "ORA-14402: updating partition key column would cause a partition change"
};
static const _error _error_OB_ERR_INVALID_TYPE_FOR_ARGUMENT = {
      .error_name            = "OB_ERR_INVALID_TYPE_FOR_ARGUMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INCORRECT_TYPE,
      .sqlstate              = "HY000",
      .str_error             = "invalid type given for an argument",
      .str_user_error        = "invalid type given for an argument",
      .oracle_errno          = 30175,
      .oracle_str_error      = "ORA-30175: invalid type given for an argument",
      .oracle_str_user_error = "ORA-30175: invalid type given for an argument"
};
static const _error _error_OB_ERR_FIELD_NOT_FOUND_IN_DATETIME_OR_INTERVAL = {
      .error_name            = "OB_ERR_FIELD_NOT_FOUND_IN_DATETIME_OR_INTERVAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "specified field not found in datetime or interval",
      .str_user_error        = "specified field not found in datetime or interval",
      .oracle_errno          = 1878,
      .oracle_str_error      = "ORA-01878: specified field not found in datetime or interval",
      .oracle_str_user_error = "ORA-01878: specified field not found in datetime or interval"
};
static const _error _error_OB_ERR_ADD_PART_BOUN_NOT_INC = {
      .error_name            = "OB_ERR_ADD_PART_BOUN_NOT_INC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_RANGE_NOT_INCREASING_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "VALUES LESS THAN value must be strictly increasing for each partition",
      .str_user_error        = "VALUES LESS THAN value must be strictly increasing for each partition",
      .oracle_errno          = 14074,
      .oracle_str_error      = "ORA-14074: partition bound must collate higher than that of the last partition",
      .oracle_str_user_error = "ORA-14074: partition bound must collate higher than that of the last partition"
};
static const _error _error_OB_ERR_DATA_TOO_LONG_IN_PART_CHECK = {
      .error_name            = "OB_ERR_DATA_TOO_LONG_IN_PART_CHECK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DATA_TOO_LONG,
      .sqlstate              = "22001",
      .str_error             = "Data too long for column",
      .str_user_error        = "Data too long for column",
      .oracle_errno          = 14036,
      .oracle_str_error      = "ORA-14036: partition bound value too large for column",
      .oracle_str_user_error = "ORA-14036: partition bound value too large for column"
};
static const _error _error_OB_ERR_WRONG_TYPE_COLUMN_VALUE_V2_ERROR = {
      .error_name            = "OB_ERR_WRONG_TYPE_COLUMN_VALUE_V2_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_TYPE_COLUMN_VALUE_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Partition column values of incorrect type",
      .str_user_error        = "Partition column values of incorrect type",
      .oracle_errno          = 14308,
      .oracle_str_error      = "ORA-14308: partition bound element must be one of: string, datetime or interval literal, number, or NULL",
      .oracle_str_user_error = "ORA-14308: partition bound element must be one of: string, datetime or interval literal, number, or NULL"
};
static const _error _error_OB_CANT_AGGREGATE_3COLLATIONS = {
      .error_name            = "OB_CANT_AGGREGATE_3COLLATIONS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_AGGREGATE_3COLLATIONS,
      .sqlstate              = "HY000",
      .str_error             = "Illegal mix of collations",
      .str_user_error        = "Illegal mix of collations",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5356, Illegal mix of collations",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5356, Illegal mix of collations"
};
static const _error _error_OB_CANT_AGGREGATE_NCOLLATIONS = {
      .error_name            = "OB_CANT_AGGREGATE_NCOLLATIONS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_AGGREGATE_NCOLLATIONS,
      .sqlstate              = "HY000",
      .str_error             = "Illegal mix of collations",
      .str_user_error        = "Illegal mix of collations",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5357, Illegal mix of collations",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5357, Illegal mix of collations"
};
static const _error _error_OB_ERR_DUPLICATED_UNIQUE_KEY = {
      .error_name            = "OB_ERR_DUPLICATED_UNIQUE_KEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DUP_ENTRY,
      .sqlstate              = "23000",
      .str_error             = "Duplicated primary key",
      .str_user_error        = "Duplicate entry \'%s\' for key \'%.*s\'",
      .oracle_errno          = 1452,
      .oracle_str_error      = "ORA-01452: cannot CREATE UNIQUE INDEX; duplicate keys found",
      .oracle_str_user_error = "ORA-01452: cannot CREATE UNIQUE INDEX; duplicate keys found"
};
static const _error _error_OB_DOUBLE_OVERFLOW = {
      .error_name            = "OB_DOUBLE_OVERFLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_DATA_OUT_OF_RANGE,
      .sqlstate              = "22003",
      .str_error             = "result Double value is out of range",
      .str_user_error        = "result Double value is out of range",
      .oracle_errno          = 1426,
      .oracle_str_error      = "ORA-01426: Double value overflow",
      .oracle_str_user_error = "ORA-01426: Double value overflow"
};
static const _error _error_OB_ERR_NO_SYS_PRIVILEGE = {
      .error_name            = "OB_ERR_NO_SYS_PRIVILEGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "insufficient privileges",
      .str_user_error        = "insufficient privileges",
      .oracle_errno          = 1031,
      .oracle_str_error      = "ORA-01031: insufficient privileges",
      .oracle_str_user_error = "ORA-01031: insufficient privileges"
};
static const _error _error_OB_ERR_NO_LOGIN_PRIVILEGE = {
      .error_name            = "OB_ERR_NO_LOGIN_PRIVILEGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "user lacks CREATE SESSION privilege logon denied",
      .str_user_error        = "user %.*s lacks CREATE SESSION privilege; logon denied",
      .oracle_errno          = 1045,
      .oracle_str_error      = "ORA-01045: user lacks CREATE SESSION privilege; logon denied",
      .oracle_str_user_error = "ORA-01045: user %.*s lacks CREATE SESSION privilege; logon denied"
};
static const _error _error_OB_ERR_CANNOT_REVOKE_PRIVILEGES_YOU_DID_NOT_GRANT = {
      .error_name            = "OB_ERR_CANNOT_REVOKE_PRIVILEGES_YOU_DID_NOT_GRANT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = OB_ERR_NO_GRANT,
      .sqlstate              = "42000",
      .str_error             = "No such grant defined",
      .str_user_error        = "No such grant defined",
      .oracle_errno          = 1927,
      .oracle_str_error      = "ORA-01927: cannot REVOKE privileges you did not grant",
      .oracle_str_user_error = "ORA-01927: cannot REVOKE privileges you did not grant"
};
static const _error _error_OB_ERR_SYSTEM_PRIVILEGES_NOT_GRANTED_TO = {
      .error_name            = "OB_ERR_SYSTEM_PRIVILEGES_NOT_GRANTED_TO",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "system privileges not granted to",
      .str_user_error        = "system privileges not granted to '%.*s'",
      .oracle_errno          = 1952,
      .oracle_str_error      = "ORA-01952: system privileges not granted to",
      .oracle_str_user_error = "ORA-01952: system privileges not granted to '%.*s'"
};
static const _error _error_OB_ERR_ONLY_SELECT_AND_ALTER_PRIVILEGES_ARE_VALID_FOR_SEQUENCES = {
      .error_name            = "OB_ERR_ONLY_SELECT_AND_ALTER_PRIVILEGES_ARE_VALID_FOR_SEQUENCES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "only SELECT and ALTER privileges are valid for sequences",
      .str_user_error        = "only SELECT and ALTER privileges are valid for sequences",
      .oracle_errno          = 2205,
      .oracle_str_error      = "ORA-02205: only SELECT and ALTER privileges are valid for sequences",
      .oracle_str_user_error = "ORA-02205: only SELECT and ALTER privileges are valid for sequences"
};
static const _error _error_OB_ERR_EXECUTE_PRIVILEGE_NOT_ALLOWED_FOR_TABLES = {
      .error_name            = "OB_ERR_EXECUTE_PRIVILEGE_NOT_ALLOWED_FOR_TABLES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "EXECUTE privilege not allowed for tables",
      .str_user_error        = "EXECUTE privilege not allowed for tables",
      .oracle_errno          = 2224,
      .oracle_str_error      = "ORA-02224: EXECUTE privilege not allowed for tables",
      .oracle_str_user_error = "ORA-02224: EXECUTE privilege not allowed for tables"
};
static const _error _error_OB_ERR_ONLY_EXECUTE_AND_DEBUG_PRIVILEGES_ARE_VALID_FOR_PROCEDURES = {
      .error_name            = "OB_ERR_ONLY_EXECUTE_AND_DEBUG_PRIVILEGES_ARE_VALID_FOR_PROCEDURES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "only EXECUTE and DEBUG privileges are valid for procedures",
      .str_user_error        = "only EXECUTE and DEBUG privileges are valid for procedures",
      .oracle_errno          = 2225,
      .oracle_str_error      = "ORA-02225: only EXECUTE and DEBUG privileges are valid for procedures",
      .oracle_str_user_error = "ORA-02225: only EXECUTE and DEBUG privileges are valid for procedures"
};
static const _error _error_OB_ERR_ONLY_EXECUTE_DEBUG_AND_UNDER_PRIVILEGES_ARE_VALID_FOR_TYPES = {
      .error_name            = "OB_ERR_ONLY_EXECUTE_DEBUG_AND_UNDER_PRIVILEGES_ARE_VALID_FOR_TYPES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "only EXECUTE, DEBUG, and UNDER privileges are valid for types",
      .str_user_error        = "only EXECUTE, DEBUG, and UNDER privileges are valid for types",
      .oracle_errno          = 2305,
      .oracle_str_error      = "ORA-02305: only EXECUTE, DEBUG, and UNDER privileges are valid for types",
      .oracle_str_user_error = "ORA-02305: only EXECUTE, DEBUG, and UNDER privileges are valid for types"
};
static const _error _error_OB_ERR_ADMIN_OPTION_NOT_GRANTED_FOR_ROLE = {
      .error_name            = "OB_ERR_ADMIN_OPTION_NOT_GRANTED_FOR_ROLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ADMIN option not granted for role",
      .str_user_error        = "ADMIN option not granted for role '%.*s'",
      .oracle_errno          = 1932,
      .oracle_str_error      = "ORA-01932: ADMIN option not granted for role",
      .oracle_str_user_error = "ORA-01932: ADMIN option not granted for role '%.*s'"
};
static const _error _error_OB_ERR_USER_OR_ROLE_DOES_NOT_EXIST = {
      .error_name            = "OB_ERR_USER_OR_ROLE_DOES_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "user or role does not exist",
      .str_user_error        = "user or role '%.*s' does not exist",
      .oracle_errno          = 1917,
      .oracle_str_error      = "ORA-01917: user or role does not exist",
      .oracle_str_user_error = "ORA-01917: user or role '%.*s' does not exist"
};
static const _error _error_OB_ERR_MISSING_ON_KEYWORD = {
      .error_name            = "OB_ERR_MISSING_ON_KEYWORD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "missing ON keyword",
      .str_user_error        = "missing ON keyword",
      .oracle_errno          = 969,
      .oracle_str_error      = "ORA-00969: missing ON keyword",
      .oracle_str_user_error = "ORA-00969: missing ON keyword"
};
static const _error _error_OB_ERR_NO_GRANT_OPTION = {
      .error_name            = "OB_ERR_NO_GRANT_OPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "grant option does not exists",
      .str_user_error        = "grant option does not exist for '%.*s.%.*s'",
      .oracle_errno          = 1720,
      .oracle_str_error      = "ORA-01720: grant option does not exist",
      .oracle_str_user_error = "ORA-01720: grant option does not exist for '%.*s.%.*s'"
};
static const _error _error_OB_ERR_ALTER_INDEX_AND_EXECUTE_NOT_ALLOWED_FOR_VIEWS = {
      .error_name            = "OB_ERR_ALTER_INDEX_AND_EXECUTE_NOT_ALLOWED_FOR_VIEWS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ALTER, INDEX and EXECUTE not allowed for views",
      .str_user_error        = "ALTER, INDEX and EXECUTE not allowed for views",
      .oracle_errno          = 2204,
      .oracle_str_error      = "ORA-02204: ALTER, INDEX and EXECUTE not allowed for views",
      .oracle_str_user_error = "ORA-02204: ALTER, INDEX and EXECUTE not allowed for views"
};
static const _error _error_OB_ERR_CIRCULAR_ROLE_GRANT_DETECTED = {
      .error_name            = "OB_ERR_CIRCULAR_ROLE_GRANT_DETECTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "circular role grant detected",
      .str_user_error        = "circular role grant detected",
      .oracle_errno          = 1934,
      .oracle_str_error      = "ORA-01934: circular role grant detected",
      .oracle_str_user_error = "ORA-01934: circular role grant detected"
};
static const _error _error_OB_ERR_INVALID_PRIVILEGE_ON_DIRECTORIES = {
      .error_name            = "OB_ERR_INVALID_PRIVILEGE_ON_DIRECTORIES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid privilege on directories",
      .str_user_error        = "invalid privilege on directories",
      .oracle_errno          = 22928,
      .oracle_str_error      = "ORA-22928: invalid privilege on directories",
      .oracle_str_user_error = "ORA-22928: invalid privilege on directories"
};
static const _error _error_OB_ERR_DIRECTORY_ACCESS_DENIED = {
      .error_name            = "OB_ERR_DIRECTORY_ACCESS_DENIED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "directory access denied",
      .str_user_error        = "directory access denied",
      .oracle_errno          = 29289,
      .oracle_str_error      = "ORA-29289: directory access denied",
      .oracle_str_user_error = "ORA-29289: directory access denied"
};
static const _error _error_OB_ERR_MISSING_OR_INVALID_ROLE_NAME = {
      .error_name            = "OB_ERR_MISSING_OR_INVALID_ROLE_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "missing or invalid role name",
      .str_user_error        = "missing or invalid role name",
      .oracle_errno          = 1937,
      .oracle_str_error      = "ORA-01937: missing or invalid role name",
      .oracle_str_user_error = "ORA-01937: missing or invalid role name"
};
static const _error _error_OB_ERR_ROLE_NOT_GRANTED_OR_DOES_NOT_EXIST = {
      .error_name            = "OB_ERR_ROLE_NOT_GRANTED_OR_DOES_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "role not granted or does not exist",
      .str_user_error        = "role '%.*s' not granted or does not exist",
      .oracle_errno          = 1924,
      .oracle_str_error      = "ORA-01924: role not granted or does not exist",
      .oracle_str_user_error = "ORA-01924: role '%.*s' not granted or does not exist"
};
static const _error _error_OB_ERR_DEFAULT_ROLE_NOT_GRANTED_TO_USER = {
      .error_name            = "OB_ERR_DEFAULT_ROLE_NOT_GRANTED_TO_USER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "DEFAULT ROLE not granted to user",
      .str_user_error        = "DEFAULT ROLE '%.*s' not granted to user",
      .oracle_errno          = 1955,
      .oracle_str_error      = "ORA-01955: DEFAULT ROLE not granted to user",
      .oracle_str_user_error = "ORA-01955: DEFAULT ROLE '%.*s' not granted to user"
};
static const _error _error_OB_ERR_ROLE_NOT_GRANTED_TO = {
      .error_name            = "OB_ERR_ROLE_NOT_GRANTED_TO",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ROLE not granted to",
      .str_user_error        = "ROLE '%.*s' not granted to '%.*s'",
      .oracle_errno          = 1951,
      .oracle_str_error      = "ORA-01951: ROLE not granted to",
      .oracle_str_user_error = "ORA-01951: ROLE '%.*s' not granted to '%.*s'"
};
static const _error _error_OB_ERR_CANNOT_GRANT_TO_A_ROLE_WITH_GRANT_OPTION = {
      .error_name            = "OB_ERR_CANNOT_GRANT_TO_A_ROLE_WITH_GRANT_OPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot GRANT to a role WITH GRANT OPTION",
      .str_user_error        = "cannot GRANT to a role WITH GRANT OPTION",
      .oracle_errno          = 1926,
      .oracle_str_error      = "ORA-01926: cannot GRANT to a role WITH GRANT OPTION",
      .oracle_str_user_error = "ORA-01926: cannot GRANT to a role WITH GRANT OPTION"
};
static const _error _error_OB_ERR_DUPLICATE_USERNAME_IN_LIST = {
      .error_name            = "OB_ERR_DUPLICATE_USERNAME_IN_LIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate username in list",
      .str_user_error        = "duplicate username in list",
      .oracle_errno          = 1700,
      .oracle_str_error      = "ORA-01700: duplicate username in list",
      .oracle_str_user_error = "ORA-01700: duplicate username in list"
};
static const _error _error_OB_ERR_CANNOT_GRANT_STRING_TO_A_ROLE = {
      .error_name            = "OB_ERR_CANNOT_GRANT_STRING_TO_A_ROLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot grant string to a role",
      .str_user_error        = "cannot grant %.*s to a role",
      .oracle_errno          = 1931,
      .oracle_str_error      = "ORA-01931: cannot grant string to a role",
      .oracle_str_user_error = "ORA-01931: cannot grant %.*s to a role"
};
static const _error _error_OB_ERR_CASCADE_CONSTRAINTS_MUST_BE_SPECIFIED_TO_PERFORM_THIS_REVOKE = {
      .error_name            = "OB_ERR_CASCADE_CONSTRAINTS_MUST_BE_SPECIFIED_TO_PERFORM_THIS_REVOKE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "CASCADE CONSTRAINTS must be specified to perform this revoke",
      .str_user_error        = "CASCADE CONSTRAINTS must be specified to perform this revoke",
      .oracle_errno          = 1981,
      .oracle_str_error      = "ORA-01981: CASCADE CONSTRAINTS must be specified to perform this revoke",
      .oracle_str_user_error = "ORA-01981: CASCADE CONSTRAINTS must be specified to perform this revoke"
};
static const _error _error_OB_ERR_YOU_MAY_NOT_REVOKE_PRIVILEGES_FROM_YOURSELF = {
      .error_name            = "OB_ERR_YOU_MAY_NOT_REVOKE_PRIVILEGES_FROM_YOURSELF",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "you may not GRANT/REVOKE privileges to/from yourself",
      .str_user_error        = "you may not GRANT/REVOKE privileges to/from yourself",
      .oracle_errno          = 1749,
      .oracle_str_error      = "ORA-01749: you may not GRANT/REVOKE privileges to/from yourself",
      .oracle_str_user_error = "ORA-01749: you may not GRANT/REVOKE privileges to/from yourself"
};
static const _error _error_OB_ERR_MISS_ERR_LOG_MANDATORY_COLUMN = {
      .error_name            = "OB_ERR_MISS_ERR_LOG_MANDATORY_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "miss mandatory column of error log table",
      .str_user_error        = "miss mandatory column %.*s of error log table",
      .oracle_errno          = 38900,
      .oracle_str_error      = "ORA-38900: miss mandatory column of error log table",
      .oracle_str_user_error = "ORA-38900: miss mandatory column %.*s of error log table"
};
static const _error _error_OB_TABLE_DEFINITION_CHANGED = {
      .error_name            = "OB_TABLE_DEFINITION_CHANGED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TABLE_DEF_CHANGED,
      .sqlstate              = "HY000",
      .str_error             = "Unable to read data -- Table definition has changed",
      .str_user_error        = "Unable to read data -- Table definition has changed",
      .oracle_errno          = 1466,
      .oracle_str_error      = "ORA-01466: Unable to read data -- Table definition has changed",
      .oracle_str_user_error = "ORA-01466: Unable to read data -- Table definition has changed"
};
static const _error _error_OB_ERR_NO_ROUTINE_PRIVILEGE = {
      .error_name            = "OB_ERR_NO_ROUTINE_PRIVILEGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PROCACCESS_DENIED_ERROR,
      .sqlstate              = "42000",
      .str_error             = "Command denied to user for routine",
      .str_user_error        = "%.*s command denied to user '%.*s'@'%.*s' for routine '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5387, Command denied to user for routine",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5387, %.*s command denied to user '%.*s'@'%.*s' for routine '%.*s'"
};
static const _error _error_OB_ERR_USER_REFFERD_AS_DEFINER = {
      .error_name            = "OB_ERR_USER_REFFERD_AS_DEFINER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_USER_REFERRED_AS_DEFINER,
      .sqlstate              = "HY000",
      .str_error             = "User '%.*s'@'%.*s' is referenced as a definer account in a stored routine.",
      .str_user_error        = "User '%.*s'@'%.*s' is referenced as a definer account in a stored routine.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5388, User '%.*s'@'%.*s' is referenced as a definer account in a stored routine.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5388, User '%.*s'@'%.*s' is referenced as a definer account in a stored routine."
};
static const _error _error_OB_ERR_OPERATION_ON_USER_REFERRED_AS_DEFINER = {
      .error_name            = "OB_ERR_OPERATION_ON_USER_REFERRED_AS_DEFINER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_OPERATION_ON_USER_REFERRED_AS_DEFINER,
      .sqlstate              = "HY000",
      .str_error             = "Operation %.*s failed for '%.*s'@'%.*s' as it is referenced as a definer account in a stored routine.",
      .str_user_error        = "Operation %.*s failed for '%.*s'@'%.*s' as it is referenced as a definer account in a stored routine.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5389, Operation %.*s failed for '%.*s'@'%.*s' as it is referenced as a definer account in a stored routine.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5389, Operation %.*s failed for '%.*s'@'%.*s' as it is referenced as a definer account in a stored routine."
};
static const _error _error_OB_ERR_NO_COLUMN_PRIVILEGE = {
      .error_name            = "OB_ERR_NO_COLUMN_PRIVILEGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_COLUMNACCESS_DENIED_ERROR,
      .sqlstate              = "42000",
      .str_error             = "%.*s command denied to user '%.*s'@'%.*s' for column '%.*s' in table '%.*s'",
      .str_user_error        = "%.*s command denied to user '%.*s'@'%.*s' for column '%.*s' in table '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5390, %.*s command denied to user '%.*s'@'%.*s' for column '%.*s' in table '%.*s'",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5390, %.*s command denied to user '%.*s'@'%.*s' for column '%.*s' in table '%.*s'"
};
static const _error _error_OB_ERR_OBJECT_STRING_DOES_NOT_EXIST = {
      .error_name            = "OB_ERR_OBJECT_STRING_DOES_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "object string does not exist",
      .str_user_error        = "object %.*s does not exist",
      .oracle_errno          = 4043,
      .oracle_str_error      = "ORA-04043: object string does not exist",
      .oracle_str_user_error = "ORA-04043: object %.*s does not exist"
};
static const _error _error_OB_ERR_RESULTANT_DATA_TYPE_OF_VIRTUAL_COLUMN_IS_NOT_SUPPORTED = {
      .error_name            = "OB_ERR_RESULTANT_DATA_TYPE_OF_VIRTUAL_COLUMN_IS_NOT_SUPPORTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "resultant data type of virtual column is not supported",
      .str_user_error        = "resultant data type of virtual column is not supported",
      .oracle_errno          = 54004,
      .oracle_str_error      = "ORA-54004: resultant data type of virtual column is not supported",
      .oracle_str_user_error = "ORA-54004: resultant data type of virtual column is not supported"
};
static const _error _error_OB_ERR_GET_STACKED_DIAGNOSTICS = {
      .error_name            = "OB_ERR_GET_STACKED_DIAGNOSTICS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_GET_STACKED_DIAGNOSTICS_INACTIVE,
      .sqlstate              = "0Z002",
      .str_error             = "GET STACKED DIAGNOSTICS when handler not active",
      .str_user_error        = "GET STACKED DIAGNOSTICS when handler not active",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5402, GET STACKED DIAGNOSTICS when handler not active",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5402, GET STACKED DIAGNOSTICS when handler not active"
};
static const _error _error_OB_DDL_SCHEMA_VERSION_NOT_MATCH = {
      .error_name            = "OB_DDL_SCHEMA_VERSION_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ddl schema version not match",
      .str_user_error        = "ddl schema version not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5403, ddl schema version not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5403, ddl schema version not match"
};
static const _error _error_OB_ERR_COLUMN_GROUP_DUPLICATE = {
      .error_name            = "OB_ERR_COLUMN_GROUP_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DUP_FIELDNAME,
      .sqlstate              = "42S21",
      .str_error             = "Duplicate column group name",
      .str_user_error        = "Duplicate column group name '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5404, Duplicate column group name",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5404, Duplicate column group name '%.*s'"
};
static const _error _error_OB_ERR_RESERVED_SYNTAX = {
      .error_name            = "OB_ERR_RESERVED_SYNTAX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_RESERVED_SYNTAX,
      .sqlstate              = "HY000",
      .str_error             = "The \'%.*s\' syntax is reserved for purposes internal to the OceanBase Server",
      .str_user_error        = "The \'%.*s\' syntax is reserved for purposes internal to the OceanBase Server",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5405, The \'%.*s\' syntax is reserved for purposes internal to the OceanBase Server",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5405, The \'%.*s\' syntax is reserved for purposes internal to the OceanBase Server"
};
static const _error _error_OB_ERR_INVALID_PARAM_TO_PROCEDURE = {
      .error_name            = "OB_ERR_INVALID_PARAM_TO_PROCEDURE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_PARAMETERS_TO_PROCEDURE,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect parameters to procedure \'%.*s\'",
      .str_user_error        = "Incorrect parameters to procedure \'%.*s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5406, Incorrect parameters to procedure \'%.*s\'",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5406, Incorrect parameters to procedure \'%.*s\'"
};
static const _error _error_OB_ERR_WRONG_PARAMETERS_TO_NATIVE_FCT = {
      .error_name            = "OB_ERR_WRONG_PARAMETERS_TO_NATIVE_FCT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_PARAMETERS_TO_NATIVE_FCT,
      .sqlstate              = "42000",
      .str_error             = "Incorrect parameters in the call to native function",
      .str_user_error        = "Incorrect parameters in the call to native function '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5407, Incorrect parameters in the call to native function",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5407, Incorrect parameters in the call to native function '%.*s'"
};
static const _error _error_OB_ERR_CTE_MAX_RECURSION_DEPTH = {
      .error_name            = "OB_ERR_CTE_MAX_RECURSION_DEPTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CTE_MAX_RECURSION_DEPTH,
      .sqlstate              = "HY000",
      .str_error             = "Recursive query aborted after multiple iterations. Try increasing @@cte_max_recursion_depth to a larger value.",
      .str_user_error        = "Recursive query aborted after %lu iterations. Try increasing @@cte_max_recursion_depth to a larger value.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5408, Recursive query aborted after multiple iterations. Try increasing @@cte_max_recursion_depth to a larger value.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5408, Recursive query aborted after %lu iterations. Try increasing @@cte_max_recursion_depth to a larger value."
};
static const _error _error_OB_DUPLICATE_OBJECT_NAME_EXIST = {
      .error_name            = "OB_DUPLICATE_OBJECT_NAME_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Duplicate object name exists, schema refreshing may be hung",
      .str_user_error        = "Duplicate object name exists, schema refreshing may be hung",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5409, Duplicate object name exists, schema refreshing may be hung",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5409, Duplicate object name exists, schema refreshing may be hung"
};
static const _error _error_OB_ERR_REFRESH_SCHEMA_TOO_LONG = {
      .error_name            = "OB_ERR_REFRESH_SCHEMA_TOO_LONG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Refresh schema failed continuously, ddl may be hung",
      .str_user_error        = "Refresh schema failed continuously, ddl may be hung",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5410, Refresh schema failed continuously, ddl may be hung",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5410, Refresh schema failed continuously, ddl may be hung"
};
static const _error _error_OB_ERR_INVALID_JSON_TEXT = {
      .error_name            = "OB_ERR_INVALID_JSON_TEXT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_JSON_TEXT,
      .sqlstate              = "22032",
      .str_error             = "Invalid JSON text.",
      .str_user_error        = "Invalid JSON text.",
      .oracle_errno          = 40441,
      .oracle_str_error      = "ORA-40441: JSON syntax error.",
      .oracle_str_user_error = "ORA-40441: JSON syntax error."
};
static const _error _error_OB_ERR_INVALID_JSON_TEXT_IN_PARAM = {
      .error_name            = "OB_ERR_INVALID_JSON_TEXT_IN_PARAM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_JSON_TEXT_IN_PARAM,
      .sqlstate              = "22032",
      .str_error             = "Invalid JSON text in argument.",
      .str_user_error        = "Invalid JSON text in argument.",
      .oracle_errno          = 40441,
      .oracle_str_error      = "ORA-40441: JSON syntax error",
      .oracle_str_user_error = "ORA-40441: JSON syntax error"
};
static const _error _error_OB_ERR_INVALID_JSON_BINARY_DATA = {
      .error_name            = "OB_ERR_INVALID_JSON_BINARY_DATA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_JSON_BINARY_DATA,
      .sqlstate              = "42000",
      .str_error             = "The JSON binary value contains invalid data.",
      .str_user_error        = "The JSON binary value contains invalid data.",
      .oracle_errno          = 40783,
      .oracle_str_error      = "ORA-40783: invalid binary JSON data\nstring",
      .oracle_str_user_error = "ORA-40783: invalid binary JSON data\nstring"
};
static const _error _error_OB_ERR_INVALID_JSON_PATH = {
      .error_name            = "OB_ERR_INVALID_JSON_PATH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_JSON_PATH,
      .sqlstate              = "42000",
      .str_error             = "Invalid JSON path expression.",
      .str_user_error        = "Invalid JSON path expression.",
      .oracle_errno          = 40442,
      .oracle_str_error      = "ORA-40442: JSON path expression syntax error ('INT')",
      .oracle_str_user_error = "ORA-40442: JSON path expression syntax error ('INT')"
};
static const _error _error_OB_ERR_INVALID_JSON_CHARSET = {
      .error_name            = "OB_ERR_INVALID_JSON_CHARSET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_JSON_CHARSET,
      .sqlstate              = "22032",
      .str_error             = "Cannot create a JSON value from a string.",
      .str_user_error        = "Cannot create a JSON value from a string.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Cannot create a JSON value from a string.",
      .oracle_str_user_error = "ORA-00600: Cannot create a JSON value from a string."
};
static const _error _error_OB_ERR_INVALID_JSON_CHARSET_IN_FUNCTION = {
      .error_name            = "OB_ERR_INVALID_JSON_CHARSET_IN_FUNCTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_JSON_CHARSET_IN_FUNCTION,
      .sqlstate              = "22032",
      .str_error             = "Invalid JSON character data provided to function.",
      .str_user_error        = "Invalid JSON character data provided to function.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Invalid JSON character data provided to function.",
      .oracle_str_user_error = "ORA-00600: Invalid JSON character data provided to function."
};
static const _error _error_OB_ERR_INVALID_TYPE_FOR_JSON = {
      .error_name            = "OB_ERR_INVALID_TYPE_FOR_JSON",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_TYPE_FOR_JSON,
      .sqlstate              = "22032",
      .str_error             = "Invalid data type for JSON data in argument %u to function %s; a JSON string or JSON type is required.",
      .str_user_error        = "Invalid data type for JSON data in argument %u to function %s; a JSON string or JSON type is required.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Invalid data type for JSON data in argument %u to function %s; a JSON string or JSON type is required.",
      .oracle_str_user_error = "ORA-00600: Invalid data type for JSON data in argument %u to function %s; a JSON string or JSON type is required."
};
static const _error _error_OB_ERR_INVALID_CAST_TO_JSON = {
      .error_name            = "OB_ERR_INVALID_CAST_TO_JSON",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_CAST_TO_JSON,
      .sqlstate              = "22032",
      .str_error             = "Cannot CAST value to JSON.",
      .str_user_error        = "Cannot CAST value to JSON.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Cannot CAST value to JSON.",
      .oracle_str_user_error = "ORA-00600: Cannot CAST value to JSON."
};
static const _error _error_OB_ERR_INVALID_JSON_PATH_CHARSET = {
      .error_name            = "OB_ERR_INVALID_JSON_PATH_CHARSET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_JSON_PATH_CHARSET,
      .sqlstate              = "42000",
      .str_error             = "A path expression must be encoded in the utf8 character set.",
      .str_user_error        = "A path expression must be encoded in the utf8 character set.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: A path expression must be encoded in the utf8 character set.",
      .oracle_str_user_error = "ORA-00600: A path expression must be encoded in the utf8 character set."
};
static const _error _error_OB_ERR_INVALID_JSON_PATH_WILDCARD = {
      .error_name            = "OB_ERR_INVALID_JSON_PATH_WILDCARD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_JSON_PATH_WILDCARD,
      .sqlstate              = "42000",
      .str_error             = "In this situation, path expressions may not contain the * and ** tokens.",
      .str_user_error        = "In this situation, path expressions may not contain the * and ** tokens.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: In this situation, path expressions may not contain the * and ** tokens.",
      .oracle_str_user_error = "ORA-00600: In this situation, path expressions may not contain the * and ** tokens."
};
static const _error _error_OB_ERR_JSON_VALUE_TOO_BIG = {
      .error_name            = "OB_ERR_JSON_VALUE_TOO_BIG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_JSON_VALUE_TOO_BIG,
      .sqlstate              = "22032",
      .str_error             = "The JSON value is too big to be stored in a JSON column.",
      .str_user_error        = "The JSON value is too big to be stored in a JSON column.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The JSON value is too big to be stored in a JSON column.",
      .oracle_str_user_error = "ORA-00600: The JSON value is too big to be stored in a JSON column."
};
static const _error _error_OB_ERR_JSON_KEY_TOO_BIG = {
      .error_name            = "OB_ERR_JSON_KEY_TOO_BIG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_JSON_KEY_TOO_BIG,
      .sqlstate              = "22032",
      .str_error             = "The JSON object contains a key name that is too long.",
      .str_user_error        = "The JSON object contains a key name that is too long.",
      .oracle_errno          = 40476,
      .oracle_str_error      = "ORA-40476: JSON key too long.",
      .oracle_str_user_error = "ORA-40476: JSON key too long."
};
static const _error _error_OB_ERR_JSON_USED_AS_KEY = {
      .error_name            = "OB_ERR_JSON_USED_AS_KEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_JSON_USED_AS_KEY,
      .sqlstate              = "42000",
      .str_error             = "JSON column cannot be used in key specification.",
      .str_user_error        = "JSON column '%.*s' cannot be used in key specification.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: JSON column cannot be used in key specification.",
      .oracle_str_user_error = "ORA-00600: JSON column '%.*s' cannot be used in key specification."
};
static const _error _error_OB_ERR_JSON_VACUOUS_PATH = {
      .error_name            = "OB_ERR_JSON_VACUOUS_PATH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_JSON_VACUOUS_PATH,
      .sqlstate              = "42000",
      .str_error             = "The path expression is not allowed in this context.",
      .str_user_error        = "The path expression is not allowed in this context.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The path expression is not allowed in this context.",
      .oracle_str_user_error = "ORA-00600: The path expression is not allowed in this context."
};
static const _error _error_OB_ERR_JSON_BAD_ONE_OR_ALL_ARG = {
      .error_name            = "OB_ERR_JSON_BAD_ONE_OR_ALL_ARG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_JSON_BAD_ONE_OR_ALL_ARG,
      .sqlstate              = "42000",
      .str_error             = "The oneOrAll argument may take these values: \'one\' or \'all\'.",
      .str_user_error        = "The oneOrAll argument may take these values: \'one\' or \'all\'.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The oneOrAll argument may take these values: \'one\' or \'all\'.",
      .oracle_str_user_error = "ORA-00600: The oneOrAll argument may take these values: \'one\' or \'all\'."
};
static const _error _error_OB_ERR_NUMERIC_JSON_VALUE_OUT_OF_RANGE = {
      .error_name            = "OB_ERR_NUMERIC_JSON_VALUE_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NUMERIC_JSON_VALUE_OUT_OF_RANGE,
      .sqlstate              = "22003",
      .str_error             = "Out of range JSON value for CAST",
      .str_user_error        = "Out of range JSON value for CAST",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Out of range JSON value for CAST",
      .oracle_str_user_error = "ORA-00600: Out of range JSON value for CAST"
};
static const _error _error_OB_ERR_INVALID_JSON_VALUE_FOR_CAST = {
      .error_name            = "OB_ERR_INVALID_JSON_VALUE_FOR_CAST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_JSON_VALUE_FOR_CAST,
      .sqlstate              = "22018",
      .str_error             = "Invalid JSON value for CAST",
      .str_user_error        = "Invalid JSON value for CAST",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Invalid JSON value for CAST",
      .oracle_str_user_error = "ORA-00600: Invalid JSON value for CAST"
};
static const _error _error_OB_ERR_JSON_OUT_OF_DEPTH = {
      .error_name            = "OB_ERR_JSON_OUT_OF_DEPTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_JSON_DOCUMENT_TOO_DEEP,
      .sqlstate              = "22032",
      .str_error             = "The JSON document exceeds the maximum depth.",
      .str_user_error        = "The JSON document exceeds the maximum depth.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The JSON document exceeds the maximum depth.",
      .oracle_str_user_error = "ORA-00600: The JSON document exceeds the maximum depth."
};
static const _error _error_OB_ERR_JSON_DOCUMENT_NULL_KEY = {
      .error_name            = "OB_ERR_JSON_DOCUMENT_NULL_KEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_JSON_DOCUMENT_NULL_KEY,
      .sqlstate              = "22032",
      .str_error             = "JSON documents may not contain NULL member names.",
      .str_user_error        = "JSON documents may not contain NULL member names.",
      .oracle_errno          = 40595,
      .oracle_str_error      = "ORA-40595: Name input to JSON generation function cannot be null",
      .oracle_str_user_error = "ORA-40595: Name input to JSON generation function cannot be null"
};
static const _error _error_OB_ERR_BLOB_CANT_HAVE_DEFAULT = {
      .error_name            = "OB_ERR_BLOB_CANT_HAVE_DEFAULT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_BLOB_CANT_HAVE_DEFAULT,
      .sqlstate              = "42000",
      .str_error             = "BLOB, TEXT, GEOMETRY or JSON column can't have a default value",
      .str_user_error        = "BLOB, TEXT, GEOMETRY or JSON column '%.*s' can't have a default value",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Invalid default value",
      .oracle_str_user_error = "ORA-00600: Invalid default value for \'%.*s\'"
};
static const _error _error_OB_ERR_INVALID_JSON_PATH_ARRAY_CELL = {
      .error_name            = "OB_ERR_INVALID_JSON_PATH_ARRAY_CELL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_JSON_PATH_ARRAY_CELL,
      .sqlstate              = "42000",
      .str_error             = "A path expression is not a path to a cell in an array",
      .str_user_error        = "A path expression is not a path to a cell in an array",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: A path expression is not a path to a cell in an array",
      .oracle_str_user_error = "ORA-00600: A path expression is not a path to a cell in an array"
};
static const _error _error_OB_ERR_MISSING_JSON_VALUE = {
      .error_name            = "OB_ERR_MISSING_JSON_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_MISSING_JSON_VALUE,
      .sqlstate              = "22035",
      .str_error             = "No value was found by '%.*s' on the specified path.",
      .str_user_error        = "No value was found by '%.192s' on the specified path.",
      .oracle_errno          = 40462,
      .oracle_str_error      = "ORA-40462: JSON_VALUE evaluated to no value",
      .oracle_str_user_error = "ORA-40462: '%.192s' evaluated to no value"
};
static const _error _error_OB_ERR_MULTIPLE_JSON_VALUES = {
      .error_name            = "OB_ERR_MULTIPLE_JSON_VALUES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_MULTIPLE_JSON_VALUES,
      .sqlstate              = "22034",
      .str_error             = "More than one value was found by '%.*s' on the specified path.",
      .str_user_error        = "More than one value was found by '%.192s' on the specified path.",
      .oracle_errno          = 40470,
      .oracle_str_error      = "ORA-40470: More than one value was found by '%.192s' on the specified path.",
      .oracle_str_user_error = "ORA-40470: More than one value was found by '%.192s' on the specified path."
};
static const _error _error_OB_SQL_RETRY_SPM = {
      .error_name            = "OB_SQL_RETRY_SPM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "retry sql due to spm",
      .str_user_error        = "retry sql due to spm",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5434, retry sql due to spm",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5434, retry sql due to spm"
};
static const _error _error_OB_OUTLINE_NOT_REPRODUCIBLE = {
      .error_name            = "OB_OUTLINE_NOT_REPRODUCIBLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "outline not reproducible",
      .str_user_error        = "outline not reproducible",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5435, outline not reproducible",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5435, outline not reproducible"
};
static const _error _error_OB_INVALID_ARGUMENT_FOR_TIMESTAMP_TO_SCN = {
      .error_name            = "OB_INVALID_ARGUMENT_FOR_TIMESTAMP_TO_SCN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Invalid argument for timestamp_to_scn()",
      .str_user_error        = " TIMESTAMP_TO_SCN expected timestamp argument",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5436, Invalid argument for timestamp_to_scn()",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5436,  TIMESTAMP_TO_SCN expected timestamp argument"
};
static const _error _error_OB_INVALID_ARGUMENT_FOR_SCN_TO_TIMESTAMP = {
      .error_name            = "OB_INVALID_ARGUMENT_FOR_SCN_TO_TIMESTAMP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Invalid argument for scn_to_timestamp()",
      .str_user_error        = "SCN_TO_TIMESTAMP expected a integer number as nsec argument",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5437, Invalid argument for scn_to_timestamp()",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5437, SCN_TO_TIMESTAMP expected a integer number as nsec argument"
};
static const _error _error_OB_EER_WINDOW_NO_CHILD_PARTITIONING = {
      .error_name            = "OB_EER_WINDOW_NO_CHILD_PARTITIONING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WINDOW_NO_CHILD_PARTITIONING,
      .sqlstate              = "HY000",
      .str_error             = "Named window cann't be modified by another partitioning property",
      .str_user_error        = "A window which depends on another cannot define partitioning",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5438, Named window cann't be modified by another partitioning property",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5438, A window which depends on another cannot define partitioning"
};
static const _error _error_OB_EER_WINDOW_NO_INHERIT_FRAME = {
      .error_name            = "OB_EER_WINDOW_NO_INHERIT_FRAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WINDOW_NO_INHERIT_FRAME,
      .sqlstate              = "HY000",
      .str_error             = "Named window cann't be modified by another framing property",
      .str_user_error        = "Window '%.*s' has a frame definition, so cannot be referenced by another window",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5439, Named window cann't be modified by another framing property",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5439, Window '%.*s' has a frame definition, so cannot be referenced by another window"
};
static const _error _error_OB_EER_WINDOW_NO_REDEFINE_ORDER_BY = {
      .error_name            = "OB_EER_WINDOW_NO_REDEFINE_ORDER_BY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WINDOW_NO_REDEFINE_ORDER_BY,
      .sqlstate              = "HY000",
      .str_error             = "Named window cann't be modified by another ordering property",
      .str_user_error        = "Window '%.*s' cannot inherit '%.*s' since both contain an ORDER BY clause",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5440, Named window cann't be modified by another ordering property",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5440, Window '%.*s' cannot inherit '%.*s' since both contain an ORDER BY clause"
};
static const _error _error_OB_ERR_INVALID_JSON_TYPE = {
      .error_name            = "OB_ERR_INVALID_JSON_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "invalid JSON type.",
      .str_user_error        = "invalid JSON type.",
      .oracle_errno          = 40587,
      .oracle_str_error      = "ORA-40587: invalid JSON type.",
      .oracle_str_user_error = "ORA-40587: invalid JSON type."
};
static const _error _error_OB_ERR_JSON_PATH_SYNTAX_ERROR = {
      .error_name            = "OB_ERR_JSON_PATH_SYNTAX_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "JSON path expression syntax error ('INT')",
      .str_user_error        = "JSON path expression syntax error ('%s')",
      .oracle_errno          = 40442,
      .oracle_str_error      = "ORA-40442: JSON path expression syntax error ('INT')",
      .oracle_str_user_error = "ORA-40442: JSON path expression syntax error ('%s')"
};
static const _error _error_OB_ERR_INVALID_DATA_TYPE_RETURNING = {
      .error_name            = "OB_ERR_INVALID_DATA_TYPE_RETURNING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "invalid data type for return value",
      .str_user_error        = "invalid data type for return value",
      .oracle_errno          = 40449,
      .oracle_str_error      = "ORA-40449: invalid data type for return value",
      .oracle_str_user_error = "ORA-40449: invalid data type for return value"
};
static const _error _error_OB_ERR_JSON_VALUE_NO_SCALAR = {
      .error_name            = "OB_ERR_JSON_VALUE_NO_SCALAR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_JSON_TABLE_VALUE,
      .sqlstate              = "42000",
      .str_error             = "Can't store an array or an object in the scalar %s column 'jpath'",
      .str_user_error        = "Can't store an array or an object in the scalar %s column 'jpath'",
      .oracle_errno          = 40456,
      .oracle_str_error      = "ORA-40456: JSON_VALUE evaluated to non-scalar value",
      .oracle_str_user_error = "ORA-40456: JSON_VALUE evaluated to non-scalar value"
};
static const _error _error_OB_ERR_JSON_VALUE_NO_VALUE = {
      .error_name            = "OB_ERR_JSON_VALUE_NO_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "JSON_VALUE evaluated to no value",
      .str_user_error        = "JSON_VALUE evaluated to no value",
      .oracle_errno          = 40462,
      .oracle_str_error      = "ORA-40462: JSON_VALUE evaluated to no value",
      .oracle_str_user_error = "ORA-40462: JSON_VALUE evaluated to no value"
};
static const _error _error_OB_ERR_DEFAULT_VALUE_NOT_LITERAL = {
      .error_name            = "OB_ERR_DEFAULT_VALUE_NOT_LITERAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "default value not a literal",
      .str_user_error        = "default value not a literal",
      .oracle_errno          = 40455,
      .oracle_str_error      = "ORA-40455: default value not a literal",
      .oracle_str_user_error = "ORA-40455: default value not a literal"
};
static const _error _error_OB_ERR_JSON_SYNTAX_ERROR = {
      .error_name            = "OB_ERR_JSON_SYNTAX_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "JSON syntax error",
      .str_user_error        = "JSON syntax error",
      .oracle_errno          = 40441,
      .oracle_str_error      = "ORA-40441: JSON syntax error",
      .oracle_str_user_error = "ORA-40441: JSON syntax error"
};
static const _error _error_OB_ERR_JSON_EQUAL_OUTSIDE_PREDICATE = {
      .error_name            = "OB_ERR_JSON_EQUAL_OUTSIDE_PREDICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "JSON_EQUAL used outside predicate",
      .str_user_error        = "JSON_EQUAL used outside predicate",
      .oracle_errno          = 40600,
      .oracle_str_error      = "ORA-40600: JSON_EQUAL used outside predicate",
      .oracle_str_user_error = "ORA-40600: JSON_EQUAL used outside predicate"
};
static const _error _error_OB_ERR_WITHOUT_ARR_WRAPPER = {
      .error_name            = "OB_ERR_WITHOUT_ARR_WRAPPER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "result cannot be returned without array wrapper",
      .str_user_error        = "result cannot be returned without array wrapper",
      .oracle_errno          = 40480,
      .oracle_str_error      = "ORA-40480: result cannot be returned without array wrapper",
      .oracle_str_user_error = "ORA-40480: result cannot be returned without array wrapper"
};
static const _error _error_OB_ERR_JSON_PATCH_INVALID = {
      .error_name            = "OB_ERR_JSON_PATCH_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Patch specification is not valid JSON",
      .str_user_error        = "Patch specification is not valid JSON",
      .oracle_errno          = 40629,
      .oracle_str_error      = "ORA-40629: Patch specification is not valid JSON",
      .oracle_str_user_error = "ORA-40629: Patch specification is not valid JSON"
};
static const _error _error_OB_ERR_ORDER_SIBLINGS_BY_NOT_ALLOWED = {
      .error_name            = "OB_ERR_ORDER_SIBLINGS_BY_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "ORDER SIBLINGS BY clause not allowed here",
      .str_user_error        = "ORDER SIBLINGS BY clause not allowed here",
      .oracle_errno          = 30929,
      .oracle_str_error      = "ORA-30929: ORDER SIBLINGS BY clause not allowed here",
      .oracle_str_user_error = "ORA-30929: ORDER SIBLINGS BY clause not allowed here"
};
static const _error _error_OB_ERR_LOB_TYPE_NOT_SORTING = {
      .error_name            = "OB_ERR_LOB_TYPE_NOT_SORTING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Column of LOB type cannot be used for sorting",
      .str_user_error        = "Column of LOB type cannot be used for sorting",
      .oracle_errno          = 40750,
      .oracle_str_error      = "ORA-40750: Column of LOB type cannot be used for sorting",
      .oracle_str_user_error = "ORA-40750: Column of LOB type cannot be used for sorting"
};
static const _error _error_OB_ERR_DUPLICATE_KEY = {
      .error_name            = "OB_ERR_DUPLICATE_KEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "duplicate key names in JSON object",
      .str_user_error        = "duplicate key names in JSON object",
      .oracle_errno          = 40473,
      .oracle_str_error      = "ORA-40473: duplicate key names in JSON object",
      .oracle_str_user_error = "ORA-40473: duplicate key names in JSON object"
};
static const _error _error_OB_ERR_JSON_PATH_EXPRESSION_SYNTAX_ERROR = {
      .error_name            = "OB_ERR_JSON_PATH_EXPRESSION_SYNTAX_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "JSON path expression syntax error ('')",
      .str_user_error        = "JSON path expression syntax error ('%.*s')",
      .oracle_errno          = 40597,
      .oracle_str_error      = "ORA-40597: JSON path expression syntax error ('')",
      .oracle_str_user_error = "ORA-40597: JSON path expression syntax error ('%.*s')"
};
static const _error _error_OB_ERR_JSON_ILLEGAL_ZERO_LENGTH_IDENTIFIER_ERROR = {
      .error_name            = "OB_ERR_JSON_ILLEGAL_ZERO_LENGTH_IDENTIFIER_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "illegal zero-length identifier",
      .str_user_error        = "illegal zero-length identifier",
      .oracle_errno          = 01741,
      .oracle_str_error      = "ORA-01741: illegal zero-length identifier",
      .oracle_str_user_error = "ORA-01741: illegal zero-length identifier"
};
static const _error _error_OB_ERR_NO_VALUE_IN_PASSING = {
      .error_name            = "OB_ERR_NO_VALUE_IN_PASSING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Variable in JSON path expression has no value in PASSING clause.",
      .str_user_error        = "Variable in JSON path expression has no value in PASSING clause.",
      .oracle_errno          = 40656,
      .oracle_str_error      = "ORA-40656: Variable in JSON path expression has no value in PASSING clause.",
      .oracle_str_user_error = "ORA-40656: Variable in JSON path expression has no value in PASSING clause."
};
static const _error _error_OB_ERR_INVALID_COLUMN_SPE = {
      .error_name            = "OB_ERR_INVALID_COLUMN_SPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "JSON syntax error",
      .str_user_error        = "JSON syntax error",
      .oracle_errno          = 1747,
      .oracle_str_error      = "ORA-01747: invalid user.table.column, table.column, or column specification",
      .oracle_str_user_error = "ORA-01747: invalid user.table.column, table.column, or column specification"
};
static const _error _error_OB_ERR_INPUT_JSON_NOT_BE_NULL = {
      .error_name            = "OB_ERR_INPUT_JSON_NOT_BE_NULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "JSON syntax error",
      .str_user_error        = "JSON syntax error",
      .oracle_errno          = 40595,
      .oracle_str_error      = "ORA-40595: Name input to JSON generation function cannot be null",
      .oracle_str_user_error = "ORA-40595: Name input to JSON generation function cannot be null"
};
static const _error _error_OB_ERR_INVALID_DATA_TYPE = {
      .error_name            = "OB_ERR_INVALID_DATA_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "invalid data type for '%s' column",
      .str_user_error        = "invalid data type for '%s' column",
      .oracle_errno          = 40484,
      .oracle_str_error      = "ORA-40484: invalid data type for '%s' column",
      .oracle_str_user_error = "ORA-40484: invalid data type for '%s' column"
};
static const _error _error_OB_ERR_INVALID_CLAUSE = {
      .error_name            = "OB_ERR_INVALID_CLAUSE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "invalid '%s' clause",
      .str_user_error        = "invalid '%s' clause",
      .oracle_errno          = 40450,
      .oracle_str_error      = "ORA-40450: invalid '%s' clause",
      .oracle_str_user_error = "ORA-40450: invalid '%s' clause"
};
static const _error _error_OB_ERR_INVALID_CMP_OP = {
      .error_name            = "OB_ERR_INVALID_CMP_OP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "invalid comparison operation involving JSON type value",
      .str_user_error        = "invalid comparison operation involving JSON type value",
      .oracle_errno          = 40796,
      .oracle_str_error      = "ORA-40796: invalid comparison operation involving JSON type value",
      .oracle_str_user_error = "ORA-40796: invalid comparison operation involving JSON type value"
};
static const _error _error_OB_ERR_INVALID_INPUT = {
      .error_name            = "OB_ERR_INVALID_INPUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Invalid Input",
      .str_user_error        = "Invalid Input",
      .oracle_errno          = 30980,
      .oracle_str_error      = "ORA-30980: Invalid Input",
      .oracle_str_user_error = "ORA-30980: Invalid Input"
};
static const _error _error_OB_ERR_EMPTY_INPUT_TO_JSON_OPERATOR = {
      .error_name            = "OB_ERR_EMPTY_INPUT_TO_JSON_OPERATOR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "empty input to JSON operator",
      .str_user_error        = "empty input to JSON operator",
      .oracle_errno          = 40833,
      .oracle_str_error      = "ORA-40833: empty input to JSON operator",
      .oracle_str_user_error = "ORA-40833: empty input to JSON operator"
};
static const _error _error_OB_ERR_ADDITIONAL_IS_JSON = {
      .error_name            = "OB_ERR_ADDITIONAL_IS_JSON",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "cannot add additional IS jSON check constraint",
      .str_user_error        = "cannot add additional IS jSON check constraint",
      .oracle_errno          = 40664,
      .oracle_str_error      = "ORA-40664: cannot add additional IS jSON check constraint",
      .oracle_str_user_error = "ORA-40664: cannot add additional IS jSON check constraint"
};
static const _error _error_OB_ERR_FUNCTION_INVALID_STATE = {
      .error_name            = "OB_ERR_FUNCTION_INVALID_STATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Package or function PRO is in an invalid state",
      .str_user_error        = "Package or function PRO is in an invalid state",
      .oracle_errno          = 6575,
      .oracle_str_error      = "ORA-06575: Package or function PRO is in an invalid state",
      .oracle_str_user_error = "ORA-06575: Package or function PRO is in an invalid state"
};
static const _error _error_OB_ERR_MISS_VALUE = {
      .error_name            = "OB_ERR_MISS_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "missing VALUE keyword",
      .str_user_error        = "missing VALUE keyword",
      .oracle_errno          = 2000,
      .oracle_str_error      = "ORA-02000: missing VALUE keyword",
      .oracle_str_user_error = "ORA-02000: missing VALUE keyword"
};
static const _error _error_OB_ERR_DIFFERENT_TYPE_SELECTED = {
      .error_name            = "OB_ERR_DIFFERENT_TYPE_SELECTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "JSON path expression selected a value of different data type",
      .str_user_error        = "JSON path expression selected a value of different data type",
      .oracle_errno          = 40566,
      .oracle_str_error      = "ORA-40566: JSON path expression selected a value of different data type",
      .oracle_str_user_error = "ORA-40566: JSON path expression selected a value of different data type"
};
static const _error _error_OB_ERR_NO_VALUE_SELECTED = {
      .error_name            = "OB_ERR_NO_VALUE_SELECTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "JSON path expression did not select a value.",
      .str_user_error        = "JSON path expression did not select a value.",
      .oracle_errno          = 40565,
      .oracle_str_error      = "ORA-40565: JSON path expression did not select a value.",
      .oracle_str_user_error = "ORA-40565: JSON path expression did not select a value."
};
static const _error _error_OB_ERR_NON_TEXT_RET_NOTSUPPORT = {
      .error_name            = "OB_ERR_NON_TEXT_RET_NOTSUPPORT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "ASCII or PRETTY not supported for non-textual return data type",
      .str_user_error        = "ASCII or PRETTY not supported for non-textual return data type",
      .oracle_errno          = 40481,
      .oracle_str_error      = "ORA-40481: ASCII or PRETTY not supported for non-textual return data type",
      .oracle_str_user_error = "ORA-40481: ASCII or PRETTY not supported for non-textual return data type"
};
static const _error _error_OB_ERR_PL_JSONTYPE_USAGE = {
      .error_name            = "OB_ERR_PL_JSONTYPE_USAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Invalid use of PL/SQL JSON object type",
      .str_user_error        = "Invalid use of PL/SQL JSON object type",
      .oracle_errno          = 40573,
      .oracle_str_error      = "ORA-40573: Invalid use of PL/SQL JSON object type",
      .oracle_str_user_error = "ORA-40573: Invalid use of PL/SQL JSON object type"
};
static const _error _error_OB_ERR_NULL_INPUT = {
      .error_name            = "OB_ERR_NULL_INPUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Input cannot be null",
      .str_user_error        = "Input cannot be null",
      .oracle_errno          = 64403,
      .oracle_str_error      = "ORA-64403: Input cannot be null",
      .oracle_str_user_error = "ORA-64403: Input cannot be null"
};
static const _error _error_OB_ERR_NOT_ISO_8601_FORMAT = {
      .error_name            = "OB_ERR_NOT_ISO_8601_FORMAT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "date or time stamp string value does not conform to ISO 8601 format",
      .str_user_error        = "Jdate or time stamp string value does not conform to ISO 8601 format",
      .oracle_errno          = 40688,
      .oracle_str_error      = "ORA-40688: date or time stamp string value does not conform to ISO 8601 format",
      .oracle_str_user_error = "ORA-40688: date or time stamp string value does not conform to ISO 8601 format"
};
static const _error _error_OB_ERR_VALUE_EXCEEDED_MAX = {
      .error_name            = "OB_ERR_VALUE_EXCEEDED_MAX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "value is out of range",
      .str_user_error        = "%d value is out of range in %d",
      .oracle_errno          = 40459,
      .oracle_str_error      = "ORA-40459: output value too large",
      .oracle_str_user_error = "ORA-40459: output value too large (actual: %d, maximum: %d)"
};
static const _error _error_OB_ERR_DEFAULT_VALUE_NOT_MATCH = {
      .error_name            = "OB_ERR_DEFAULT_VALUE_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "default value not matching type defined in RETURNING clause",
      .str_user_error        = "default value not matching type defined in RETURNING clause",
      .oracle_errno          = 40452,
      .oracle_str_error      = "ORA-40452: default value not matching type defined in RETURNING clause",
      .oracle_str_user_error = "ORA-40452: default value not matching type defined in RETURNING clause"
};
static const _error _error_OB_ERR_BOOL_NOT_CONVERT_NUMBER = {
      .error_name            = "OB_ERR_BOOL_NOT_CONVERT_NUMBER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "cannot convert Boolean value to number",
      .str_user_error        = "cannot convert Boolean value to number",
      .oracle_errno          = 40799,
      .oracle_str_error      = "ORA-40799: cannot convert Boolean value to number",
      .oracle_str_user_error = "ORA-40799: cannot convert Boolean value to number"
};
static const _error _error_OB_ERR_CONVERSION_FAIL = {
      .error_name            = "OB_ERR_CONVERSION_FAIL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "JSON conversion failed",
      .str_user_error        = "JSON conversion failed",
      .oracle_errno          = 40570,
      .oracle_str_error      = "ORA-40570: JSON conversion failed",
      .oracle_str_user_error = "ORA-40570: JSON conversion failed"
};
static const _error _error_OB_ERR_NOT_OBJ_REF = {
      .error_name            = "OB_ERR_NOT_OBJ_REF",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "not an object or REF",
      .str_user_error        = "not an object or REF",
      .oracle_errno          = 22806,
      .oracle_str_error      = "ORA-22806: not an object or REF",
      .oracle_str_user_error = "ORA-22806: not an object or REF"
};
static const _error _error_OB_ERR_UNSUPPORT_TRUNCATE_TYPE = {
      .error_name            = "OB_ERR_UNSUPPORT_TRUNCATE_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Truncation is not supported with data type in RETURNING clause",
      .str_user_error        = "Truncation is not supported with data type in RETURNING clause",
      .oracle_errno          = 40779,
      .oracle_str_error      = "ORA-40779: Truncation is not supported with data type in RETURNING clause",
      .oracle_str_user_error = "ORA-40779: Truncation is not supported with data type in RETURNING clause"
};
static const _error _error_OB_ERR_UNIMPLEMENT_JSON_FEATURE = {
      .error_name            = "OB_ERR_UNIMPLEMENT_JSON_FEATURE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Unimplemented JSON feature",
      .str_user_error        = "Unimplemented JSON feature",
      .oracle_errno          = 40569,
      .oracle_str_error      = "ORA-40569: Unimplemented JSON feature",
      .oracle_str_user_error = "ORA-40569: Unimplemented JSON feature"
};
static const _error _error_OB_ERR_USAGE_KEYWORD = {
      .error_name            = "OB_ERR_USAGE_KEYWORD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "invalid usage of keyword EXISTS",
      .str_user_error        = "invalid usage of keyword EXISTS",
      .oracle_errno          = 40487,
      .oracle_str_error      = "ORA-40487: invalid usage of keyword EXISTS",
      .oracle_str_user_error = "ORA-40487: invalid usage of keyword EXISTS"
};
static const _error _error_OB_ERR_INPUT_JSON_TABLE = {
      .error_name            = "OB_ERR_INPUT_JSON_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "invalid input data type for JSON_TABLE",
      .str_user_error        = "invalid input data type for JSON_TABLE",
      .oracle_errno          = 40491,
      .oracle_str_error      = "ORA-40491: invalid input data type for JSON_TABLE",
      .oracle_str_user_error = "ORA-40491: invalid input data type for JSON_TABLE"
};
static const _error _error_OB_ERR_BOOL_CAST_NUMBER = {
      .error_name            = "OB_ERR_BOOL_CAST_NUMBER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "cannot convert Boolean value to number",
      .str_user_error        = "cannot convert Boolean value to number",
      .oracle_errno          = 40799,
      .oracle_str_error      = "ORA-40799: cannot convert Boolean value to number",
      .oracle_str_user_error = "ORA-40799: cannot convert Boolean value to number"
};
static const _error _error_OB_ERR_NESTED_PATH_DISJUNCT = {
      .error_name            = "OB_ERR_NESTED_PATH_DISJUNCT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "JSON_TABLE nested path expressions not disjunct",
      .str_user_error        = "JSON_TABLE nested path expressions not disjunct",
      .oracle_errno          = 40560,
      .oracle_str_error      = "ORA-40560: JSON_TABLE nested path expressions not disjunct",
      .oracle_str_user_error = "ORA-40560: JSON_TABLE nested path expressions not disjunct"
};
static const _error _error_OB_ERR_INVALID_VARIABLE_IN_JSON_PATH = {
      .error_name            = "OB_ERR_INVALID_VARIABLE_IN_JSON_PATH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = " Invalid use of bind variable in SQL/JSON path.",
      .str_user_error        = " Invalid use of bind variable in SQL/JSON path.",
      .oracle_errno          = 40576,
      .oracle_str_error      = "ORA-40576:  Invalid use of bind variable in SQL/JSON path.",
      .oracle_str_user_error = "ORA-40576:  Invalid use of bind variable in SQL/JSON path."
};
static const _error _error_OB_ERR_JSON_KEY_NOT_FOUND = {
      .error_name            = "OB_ERR_JSON_KEY_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "JSON key name not found.",
      .str_user_error        = "JSON key name not found.",
      .oracle_errno          = 40571,
      .oracle_str_error      = "ORA-40571: JSON key name not found.",
      .oracle_str_user_error = "ORA-40571: JSON key name not found."
};
static const _error _error_OB_ERR_INVALID_DEFAULT_VALUE_PROVIDED = {
      .error_name            = "OB_ERR_INVALID_DEFAULT_VALUE_PROVIDED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Invalid numeric",
      .str_user_error        = "Invalid numeric",
      .oracle_errno          = 40451,
      .oracle_str_error      = "ORA-40451: invalid default value provided",
      .oracle_str_user_error = "ORA-40451: invalid default value provided"
};
static const _error _error_OB_ERR_PATH_EXPRESSION_NOT_LITERAL = {
      .error_name            = "OB_ERR_PATH_EXPRESSION_NOT_LITERAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "path expression not a literal",
      .str_user_error        = "path expression not a literal",
      .oracle_errno          = 40454,
      .oracle_str_error      = "ORA-40454: path expression not a literal",
      .oracle_str_user_error = "ORA-40454: path expression not a literal"
};
static const _error _error_OB_ERR_INVALID_ARGUMENT_FOR_JSON_CALL = {
      .error_name            = "OB_ERR_INVALID_ARGUMENT_FOR_JSON_CALL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid argument for JSON call",
      .str_user_error        = "invalid argument for %s call",
      .oracle_errno          = 185,
      .oracle_str_error      = "PLS-00185: invalid argument for JSON call",
      .oracle_str_user_error = "PLS-00185: invalid argument for %s call"
};
static const _error _error_OB_ERR_SCHEMA_HISTORY_EMPTY = {
      .error_name            = "OB_ERR_SCHEMA_HISTORY_EMPTY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Schema history is empty",
      .str_user_error        = "Schema history is empty",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5489, Schema history is empty",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5489, Schema history is empty"
};
static const _error _error_OB_ERR_TABLE_NAME_NOT_IN_LIST = {
      .error_name            = "OB_ERR_TABLE_NAME_NOT_IN_LIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "table name not in FROM list",
      .str_user_error        = "table name not in FROM list",
      .oracle_errno          = 964,
      .oracle_str_error      = "ORA-00964: table name not in FROM list",
      .oracle_str_user_error = "ORA-00964: table name not in FROM list"
};
static const _error _error_OB_ERR_DEFAULT_NOT_AT_LAST_IN_LIST_PART = {
      .error_name            = "OB_ERR_DEFAULT_NOT_AT_LAST_IN_LIST_PART",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "DEFAULT partition must be last partition specified",
      .str_user_error        = "DEFAULT partition must be last partition specified",
      .oracle_errno          = 14318,
      .oracle_str_error      = "ORA-14318: DEFAULT partition must be last partition specified",
      .oracle_str_user_error = "ORA-14318: DEFAULT partition must be last partition specified"
};
static const _error _error_OB_ERR_MYSQL_CHARACTER_SET_MISMATCH = {
      .error_name            = "OB_ERR_MYSQL_CHARACTER_SET_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CHARACTER_SET_MISMATCH,
      .sqlstate              = "HY000",
      .str_error             = "Character set cannot be used in conjunction with binary collations in function call",
      .str_user_error        = "Character set '%.*s' cannot be used in conjunction with '%.*s' in regexp function call.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5492, Character set cannot be used in conjunction with binary collations in function call",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5492, Character set '%.*s' cannot be used in conjunction with '%.*s' in regexp function call."
};
static const _error _error_OB_ERR_RENAME_PARTITION_NAME_DUPLICATE = {
      .error_name            = "OB_ERR_RENAME_PARTITION_NAME_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SAME_NAME_PARTITION,
      .sqlstate              = "HY000",
      .str_error             = "Duplicate partition name",
      .str_user_error        = "Duplicate partition name %.*s",
      .oracle_errno          = 14082,
      .oracle_str_error      = "ORA-14082: New partition name must differ from that of any other partition or subpartition of the object.",
      .oracle_str_user_error = "ORA-14082: New partition name %.*s must differ from that of any other partition or subpartition of the object."
};
static const _error _error_OB_ERR_RENAME_SUBPARTITION_NAME_DUPLICATE = {
      .error_name            = "OB_ERR_RENAME_SUBPARTITION_NAME_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SAME_NAME_PARTITION,
      .sqlstate              = "HY000",
      .str_error             = "Duplicate partition name",
      .str_user_error        = "Duplicate partition name %.*s",
      .oracle_errno          = 14263,
      .oracle_str_error      = "ORA-14263: New subpartition name must differ from that of any other partition or subpartition of the object.",
      .oracle_str_user_error = "ORA-14263: New subpartition name %.*s must differ from that of any other partition or subpartition of the object."
};
static const _error _error_OB_ERR_INVALID_WAIT_INTERVAL = {
      .error_name            = "OB_ERR_INVALID_WAIT_INTERVAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "missing or invalid WAIT interval",
      .str_user_error        = "missing or invalid WAIT interval",
      .oracle_errno          = 30005,
      .oracle_str_error      = "ORA-30005: missing or invalid WAIT interval",
      .oracle_str_user_error = "ORA-30005: missing or invalid WAIT interval"
};
static const _error _error_OB_ERR_FUNCTIONAL_INDEX_REF_AUTO_INCREMENT = {
      .error_name            = "OB_ERR_FUNCTIONAL_INDEX_REF_AUTO_INCREMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_FUNCTIONAL_INDEX_REF_AUTO_INCREMENT,
      .sqlstate              = "HY000",
      .str_error             = "Functional index cannot refer to an auto-increment column.",
      .str_user_error        = "Functional index '%.*s' cannot refer to an auto-increment column.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5496, Functional index cannot refer to an auto-increment column.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5496, Functional index '%.*s' cannot refer to an auto-increment column."
};
static const _error _error_OB_ERR_DEPENDENT_BY_FUNCTIONAL_INDEX = {
      .error_name            = "OB_ERR_DEPENDENT_BY_FUNCTIONAL_INDEX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DEPENDENT_BY_FUNCTIONAL_INDEX,
      .sqlstate              = "HY000",
      .str_error             = "Column has a functional index dependency and cannot be dropped or renamed.",
      .str_user_error        = "Column '%.*s' has a functional index dependency and cannot be dropped or renamed.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5497, Column has a functional index dependency and cannot be dropped or renamed.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5497, Column '%.*s' has a functional index dependency and cannot be dropped or renamed."
};
static const _error _error_OB_ERR_FUNCTIONAL_INDEX_ON_LOB = {
      .error_name            = "OB_ERR_FUNCTIONAL_INDEX_ON_LOB",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_FUNCTIONAL_INDEX_ON_LOB,
      .sqlstate              = "HY000",
      .str_error             = "Cannot create a functional index on an expression that returns a BLOB or TEXT. Please consider using CAST.",
      .str_user_error        = "Cannot create a functional index on an expression that returns a BLOB or TEXT. Please consider using CAST.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5498, Cannot create a functional index on an expression that returns a BLOB or TEXT. Please consider using CAST.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5498, Cannot create a functional index on an expression that returns a BLOB or TEXT. Please consider using CAST."
};
static const _error _error_OB_ERR_FUNCTIONAL_INDEX_ON_FIELD = {
      .error_name            = "OB_ERR_FUNCTIONAL_INDEX_ON_FIELD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_FUNCTIONAL_INDEX_ON_FIELD,
      .sqlstate              = "HY000",
      .str_error             = "Functional index on a column is not supported. Consider using a regular index instead.",
      .str_user_error        = "Functional index on a column is not supported. Consider using a regular index instead.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5499, Functional index on a column is not supported. Consider using a regular index instead.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5499, Functional index on a column is not supported. Consider using a regular index instead."
};
static const _error _error_OB_ERR_GENCOL_LEGIT_CHECK_FAILED = {
      .error_name            = "OB_ERR_GENCOL_LEGIT_CHECK_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Legitimacy check failed for generated columns.",
      .str_user_error        = "Legitimacy check failed for generated columns.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5500, Legitimacy check failed for generated columns.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5500, Legitimacy check failed for generated columns."
};
static const _error _error_OB_ERR_GROUPING_FUNC_WITHOUT_GROUP_BY = {
      .error_name            = "OB_ERR_GROUPING_FUNC_WITHOUT_GROUP_BY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "GROUPING function only supported with GROUP BY CUBE or ROLLUP",
      .str_user_error        = "GROUPING function only supported with GROUP BY CUBE or ROLLUP",
      .oracle_errno          = 30481,
      .oracle_str_error      = "ORA-30481: GROUPING function only supported with GROUP BY CUBE or ROLLUP",
      .oracle_str_user_error = "ORA-30481: GROUPING function only supported with GROUP BY CUBE or ROLLUP"
};
static const _error _error_OB_ERR_DEPENDENT_BY_PARTITION_FUNC = {
      .error_name            = "OB_ERR_DEPENDENT_BY_PARTITION_FUNC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DEPENDENT_BY_PARTITION_FUNC,
      .sqlstate              = "HY000",
      .str_error             = "Column has a partitioning function dependency and cannot be dropped or renamed.",
      .str_user_error        = "Column '%.*s' has a partitioning function dependency and cannot be dropped or renamed.",
      .oracle_errno          = 12984,
      .oracle_str_error      = "ORA-12984: cannot drop partitioning column",
      .oracle_str_user_error = "ORA-12984: cannot drop partitioning column '%.*s'"
};
static const _error _error_OB_ERR_VIEW_SELECT_CONTAIN_INTO = {
      .error_name            = "OB_ERR_VIEW_SELECT_CONTAIN_INTO",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_VIEW_SELECT_CLAUSE,
      .sqlstate              = "HY000",
      .str_error             = "View's SELECT contains a 'INTO' clause.",
      .str_user_error        = "View's SELECT contains a 'INTO' clause.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5503, View's SELECT contains a 'INTO' clause.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5503, View's SELECT contains a 'INTO' clause."
};
static const _error _error_OB_ERR_DEFAULT_NOT_ALLOWED = {
      .error_name            = "OB_ERR_DEFAULT_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Virtual column cannot have a default value",
      .str_user_error        = "Virtual column cannot have a default value",
      .oracle_errno          = 54025,
      .oracle_str_error      = "ORA-54025: Virtual column cannot have a default value",
      .oracle_str_user_error = "ORA-54025: Virtual column cannot have a default value"
};
static const _error _error_OB_ERR_MODIFY_REALCOL_TO_GENCOL = {
      .error_name            = "OB_ERR_MODIFY_REALCOL_TO_GENCOL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Real column cannot have an expression",
      .str_user_error        = "Real column cannot have an expression",
      .oracle_errno          = 54026,
      .oracle_str_error      = "ORA-54026: Real column cannot have an expression",
      .oracle_str_user_error = "ORA-54026: Real column cannot have an expression"
};
static const _error _error_OB_ERR_MODIFY_TYPE_OF_GENCOL = {
      .error_name            = "OB_ERR_MODIFY_TYPE_OF_GENCOL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot modify data-type of virtual column",
      .str_user_error        = "cannot modify data-type of virtual column",
      .oracle_errno          = 54027,
      .oracle_str_error      = "ORA-54027: cannot modify data-type of virtual column",
      .oracle_str_user_error = "ORA-54027: cannot modify data-type of virtual column"
};
static const _error _error_OB_ERR_WINDOW_FRAME_ILLEGAL = {
      .error_name            = "OB_ERR_WINDOW_FRAME_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WINDOW_FRAME_ILLEGAL,
      .sqlstate              = "HY000",
      .str_error             = "frame start or end is negative or NULL or of non-integral type",
      .str_user_error        = "Window '%.*s': frame start or end is negative or NULL or of non-integral type",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5507, frame start or end is negative or NULL or of non-integral type",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5507, Window '%.*s': frame start or end is negative or NULL or of non-integral type"
};
static const _error _error_OB_ERR_WINDOW_RANGE_FRAME_TEMPORAL_TYPE = {
      .error_name            = "OB_ERR_WINDOW_RANGE_FRAME_TEMPORAL_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WINDOW_RANGE_FRAME_TEMPORAL_TYPE,
      .sqlstate              = "HY000",
      .str_error             = "Window with RANGE frame has ORDER BY expression of datetime type. Only INTERVAL bound value allowed.",
      .str_user_error        = "Window '%.*s' with RANGE frame has ORDER BY expression of datetime type. Only INTERVAL bound value allowed.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5508, Window with RANGE frame has ORDER BY expression of datetime type. Only INTERVAL bound value allowed.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5508, Window '%.*s' with RANGE frame has ORDER BY expression of datetime type. Only INTERVAL bound value allowed."
};
static const _error _error_OB_ERR_WINDOW_RANGE_FRAME_NUMERIC_TYPE = {
      .error_name            = "OB_ERR_WINDOW_RANGE_FRAME_NUMERIC_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WINDOW_RANGE_FRAME_NUMERIC_TYPE,
      .sqlstate              = "HY000",
      .str_error             = "Window with RANGE frame has ORDER BY expression of numeric type. INTERVAL bound value not allowed.",
      .str_user_error        = "Window '%.*s' with RANGE frame has ORDER BY expression of numeric type. INTERVAL bound value not allowed.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5509, Window with RANGE frame has ORDER BY expression of numeric type. INTERVAL bound value not allowed.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5509, Window '%.*s' with RANGE frame has ORDER BY expression of numeric type. INTERVAL bound value not allowed."
};
static const _error _error_OB_ERR_WINDOW_RANGE_BOUND_NOT_CONSTANT = {
      .error_name            = "OB_ERR_WINDOW_RANGE_BOUND_NOT_CONSTANT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WINDOW_RANGE_BOUND_NOT_CONSTANT,
      .sqlstate              = "HY000",
      .str_error             = "Window has a non-constant frame bound.",
      .str_user_error        = "Window '%.*s' has a non-constant frame bound.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5510, Window has a non-constant frame bound.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5510, Window '%.*s' has a non-constant frame bound."
};
static const _error _error_OB_ERR_DEFAULT_FOR_MODIFYING_VIEWS = {
      .error_name            = "OB_ERR_DEFAULT_FOR_MODIFYING_VIEWS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Explicit column default is not supported for modifying views",
      .str_user_error        = "Explicit column default is not supported for modifying views",
      .oracle_errno          = 32575,
      .oracle_str_error      = "ORA-32575: Explicit column default is not supported for modifying views",
      .oracle_str_user_error = "ORA-32575: Explicit column default is not supported for modifying views"
};
static const _error _error_OB_ERR_FK_COLUMN_NOT_NULL = {
      .error_name            = "OB_ERR_FK_COLUMN_NOT_NULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_FK_COLUMN_NOT_NULL,
      .sqlstate              = "HY000",
      .str_error             = "Column cannot be NOT NULL: needed in a foreign key constraint SET NULL",
      .str_user_error        = "Column \'%s\' cannot be NOT NULL: needed in a foreign key constraint \'%s\' SET NULL",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5512, Column cannot be NOT NULL: needed in a foreign key constraint SET NULL",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5512, Column \'%s\' cannot be NOT NULL: needed in a foreign key constraint \'%s\' SET NULL"
};
static const _error _error_OB_ERR_UNSUPPORTED_FK_SET_NULL_ON_GENERATED_COLUMN = {
      .error_name            = "OB_ERR_UNSUPPORTED_FK_SET_NULL_ON_GENERATED_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNSUPPORTED_FK_SET_NULL_ON_GENERATED_COLUMN,
      .sqlstate              = "HY000",
      .str_error             = " Cannot define foreign key with ON DELETE SET NULL clause on a generated column",
      .str_user_error        = " Cannot define foreign key with ON DELETE SET NULL clause on a generated column",
      .oracle_errno          = 54036,
      .oracle_str_error      = "ORA-54036: cannot define referential constraint with ON DELETE SET NULL clause on virtual column",
      .oracle_str_user_error = "ORA-54036: cannot define referential constraint with ON DELETE SET NULL clause on virtual column"
};
static const _error _error_OB_JSON_PROCESSING_ERROR = {
      .error_name            = "OB_JSON_PROCESSING_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = " JSON processing error",
      .str_user_error        = " JSON processing error",
      .oracle_errno          = 40444,
      .oracle_str_error      = "ORA-40444:  JSON processing error",
      .oracle_str_user_error = "ORA-40444:  JSON processing error"
};
static const _error _error_OB_ERR_TABLE_WITHOUT_ALIAS = {
      .error_name            = "OB_ERR_TABLE_WITHOUT_ALIAS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TF_MUST_HAVE_ALIAS,
      .sqlstate              = "42000",
      .str_error             = "Every table function must have an alias",
      .str_user_error        = "Every table function must have an alias",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5515, Every table function must have an alias",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5515, Every table function must have an alias"
};
static const _error _error_OB_ERR_DEPRECATED_SYNTAX = {
      .error_name            = "OB_ERR_DEPRECATED_SYNTAX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_DEPRECATED_SYNTAX,
      .sqlstate              = "HY000",
      .str_error             = "This syntax is deprecated and will be removed in a future release",
      .str_user_error        = "%s is deprecated and will be removed in a future release. Please use \'%s\' instead",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5516, This syntax is deprecated and will be removed in a future release",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5516, %s is deprecated and will be removed in a future release. Please use \'%s\' instead"
};
static const _error _error_OB_ERR_NON_STRING_NOT_SUPPORT = {
      .error_name            = "OB_ERR_NON_STRING_NOT_SUPPORT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NOT_SUPPORTED_YET,
      .sqlstate              = "42000",
      .str_error             = "This version of MySQL doesn't yet support 'non-string DEFAULT value for a column in a JSON_TABLE expression'",
      .str_user_error        = "This version of MySQL doesn't yet support 'non-string DEFAULT value for a column in a JSON_TABLE expression'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5517, This version of MySQL doesn't yet support 'non-string DEFAULT value for a column in a JSON_TABLE expression'",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5517, This version of MySQL doesn't yet support 'non-string DEFAULT value for a column in a JSON_TABLE expression'"
};
static const _error _error_OB_ERR_DEPRECATED_SYNTAX_NO_REP = {
      .error_name            = "OB_ERR_DEPRECATED_SYNTAX_NO_REP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT,
      .sqlstate              = "HY000",
      .str_error             = "This syntax is deprecated and will be removed in a future release",
      .str_user_error        = "%s is deprecated and will be removed in a future release",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5518, This syntax is deprecated and will be removed in a future release",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5518, %s is deprecated and will be removed in a future release"
};
static const _error _error_OB_ERR_SESSION_VAR_CHANGED = {
      .error_name            = "OB_ERR_SESSION_VAR_CHANGED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "System variables are different from the old values solidified.",
      .str_user_error        = "System variable '%.*s' is different from the old value solidified for '%.*s'(old value:%.*s).",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5540, System variables are different from the old values solidified.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5540, System variable '%.*s' is different from the old value solidified for '%.*s'(old value:%.*s)."
};
static const _error _error_OB_ERR_SP_ALREADY_EXISTS = {
      .error_name            = "OB_ERR_SP_ALREADY_EXISTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_ALREADY_EXISTS,
      .sqlstate              = "42000",
      .str_error             = "procedure/function already exists",
      .str_user_error        = "%s %.*s already exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5541, procedure/function already exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5541, %s %.*s already exists"
};
static const _error _error_OB_ERR_SP_DOES_NOT_EXIST = {
      .error_name            = "OB_ERR_SP_DOES_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_DOES_NOT_EXIST,
      .sqlstate              = "42000",
      .str_error             = "procedure/function does not exist",
      .str_user_error        = "%s %.*s.%.*s does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5542, procedure/function does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5542, %s %.*s.%.*s does not exist"
};
static const _error _error_OB_ERR_SP_UNDECLARED_VAR = {
      .error_name            = "OB_ERR_SP_UNDECLARED_VAR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_UNDECLARED_VAR,
      .sqlstate              = "42000",
      .str_error             = "Undeclared variable",
      .str_user_error        = "Undeclared variable: %.*s",
      .oracle_errno          = 201,
      .oracle_str_error      = "PLS-00201: identifier must be declared",
      .oracle_str_user_error = "PLS-00201: identifier '%.*s' must be declared"
};
static const _error _error_OB_ERR_SP_UNDECLARED_TYPE = {
      .error_name            = "OB_ERR_SP_UNDECLARED_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_UNDECLARED_VAR,
      .sqlstate              = "42000",
      .str_error             = "Undeclared type",
      .str_user_error        = "Undeclared type: %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5544, Undeclared type",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5544, Undeclared type: %.*s"
};
static const _error _error_OB_ERR_SP_COND_MISMATCH = {
      .error_name            = "OB_ERR_SP_COND_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_COND_MISMATCH,
      .sqlstate              = "42000",
      .str_error             = "Undefined CONDITION",
      .str_user_error        = "Undefined CONDITION: %.*s",
      .oracle_errno          = 485,
      .oracle_str_error      = "PLS-00485: Undefined CONDITION",
      .oracle_str_user_error = "PLS-00485: in exception handler, '%.*s' must be an exception name"
};
static const _error _error_OB_ERR_SP_LILABEL_MISMATCH = {
      .error_name            = "OB_ERR_SP_LILABEL_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_LILABEL_MISMATCH,
      .sqlstate              = "42000",
      .str_error             = "no matching label",
      .str_user_error        = "no matching label: %.*s",
      .oracle_errno          = 201,
      .oracle_str_error      = "PLS-00201: identifier must be declared",
      .oracle_str_user_error = "PLS-00201: identifier '%.*s' must be declared"
};
static const _error _error_OB_ERR_SP_CURSOR_MISMATCH = {
      .error_name            = "OB_ERR_SP_CURSOR_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_CURSOR_MISMATCH,
      .sqlstate              = "42000",
      .str_error             = "Undefined CURSOR",
      .str_user_error        = "Undefined CURSOR: %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5547, Undefined CURSOR",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5547, Undefined CURSOR: %.*s"
};
static const _error _error_OB_ERR_SP_DUP_PARAM = {
      .error_name            = "OB_ERR_SP_DUP_PARAM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_DUP_PARAM,
      .sqlstate              = "42000",
      .str_error             = "Duplicate parameter",
      .str_user_error        = "Duplicate parameter: %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5548, Duplicate parameter",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5548, Duplicate parameter: %.*s"
};
static const _error _error_OB_ERR_SP_DUP_VAR = {
      .error_name            = "OB_ERR_SP_DUP_VAR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_DUP_VAR,
      .sqlstate              = "42000",
      .str_error             = "Duplicate variable",
      .str_user_error        = "Duplicate variable: %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5549, Duplicate variable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5549, Duplicate variable: %.*s"
};
static const _error _error_OB_ERR_SP_DUP_TYPE = {
      .error_name            = "OB_ERR_SP_DUP_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_DUP_PARAM,
      .sqlstate              = "42000",
      .str_error             = "Duplicate type",
      .str_user_error        = "Duplicate type: %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5550, Duplicate type",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5550, Duplicate type: %.*s"
};
static const _error _error_OB_ERR_SP_DUP_CONDITION = {
      .error_name            = "OB_ERR_SP_DUP_CONDITION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_DUP_COND,
      .sqlstate              = "42000",
      .str_error             = "Duplicate condition",
      .str_user_error        = "Duplicate condition: %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5551, Duplicate condition",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5551, Duplicate condition: %.*s"
};
static const _error _error_OB_ERR_SP_DUP_LABEL = {
      .error_name            = "OB_ERR_SP_DUP_LABEL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_DUP_PARAM,
      .sqlstate              = "42000",
      .str_error             = "Duplicate label",
      .str_user_error        = "Duplicate label: %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5552, Duplicate label",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5552, Duplicate label: %.*s"
};
static const _error _error_OB_ERR_SP_DUP_CURSOR = {
      .error_name            = "OB_ERR_SP_DUP_CURSOR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_DUP_CURS,
      .sqlstate              = "42000",
      .str_error             = "Duplicate cursor",
      .str_user_error        = "Duplicate cursor: %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5553, Duplicate cursor",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5553, Duplicate cursor: %.*s"
};
static const _error _error_OB_ERR_SP_INVALID_FETCH_ARG = {
      .error_name            = "OB_ERR_SP_INVALID_FETCH_ARG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_WRONG_NO_OF_FETCH_ARGS,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect number of FETCH variables",
      .str_user_error        = "Incorrect number of FETCH variables",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5554, Incorrect number of FETCH variables",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5554, Incorrect number of FETCH variables"
};
static const _error _error_OB_ERR_SP_WRONG_ARG_NUM = {
      .error_name            = "OB_ERR_SP_WRONG_ARG_NUM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_WRONG_NO_OF_ARGS,
      .sqlstate              = "42000",
      .str_error             = "Incorrect number of arguments",
      .str_user_error        = "Incorrect number of arguments for %s %s; expected %u, got %u",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5555, Incorrect number of arguments",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5555, Incorrect number of arguments for %s %s; expected %u, got %u"
};
static const _error _error_OB_ERR_SP_UNHANDLED_EXCEPTION = {
      .error_name            = "OB_ERR_SP_UNHANDLED_EXCEPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SIGNAL_EXCEPTION,
      .sqlstate              = "HY000",
      .str_error             = "Unhandled exception has occurred in PL",
      .str_user_error        = "Unhandled user-defined exception condition",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5556, Unhandled exception has occurred in PL",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5556, Unhandled user-defined exception condition"
};
static const _error _error_OB_ERR_SP_BAD_CONDITION_TYPE = {
      .error_name            = "OB_ERR_SP_BAD_CONDITION_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SIGNAL_BAD_CONDITION_TYPE,
      .sqlstate              = "HY000",
      .str_error             = "SIGNAL/RESIGNAL can only use a CONDITION defined with SQLSTATE",
      .str_user_error        = "SIGNAL/RESIGNAL can only use a CONDITION defined with SQLSTATE",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5557, SIGNAL/RESIGNAL can only use a CONDITION defined with SQLSTATE",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5557, SIGNAL/RESIGNAL can only use a CONDITION defined with SQLSTATE"
};
static const _error _error_OB_ERR_PACKAGE_ALREADY_EXISTS = {
      .error_name            = "OB_ERR_PACKAGE_ALREADY_EXISTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "package already exists",
      .str_user_error        = "%s \'%.*s.%.*s\' already exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5558, package already exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5558, %s \'%.*s.%.*s\' already exists"
};
static const _error _error_OB_ERR_PACKAGE_DOSE_NOT_EXIST = {
      .error_name            = "OB_ERR_PACKAGE_DOSE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "package does not exist",
      .str_user_error        = "%s \'%.*s.%.*s\' does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5559, package does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5559, %s \'%.*s.%.*s\' does not exist"
};
static const _error _error_OB_EER_UNKNOWN_STMT_HANDLER = {
      .error_name            = "OB_EER_UNKNOWN_STMT_HANDLER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNKNOWN_STMT_HANDLER,
      .sqlstate              = "HY000",
      .str_error             = "Unknown prepared statement handle",
      .str_user_error        = "Unknown prepared statement handle",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5560, Unknown prepared statement handle",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5560, Unknown prepared statement handle"
};
static const _error _error_OB_ERR_INVALID_WINDOW_FUNC_USE = {
      .error_name            = "OB_ERR_INVALID_WINDOW_FUNC_USE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid use of window function",
      .str_user_error        = "Invalid use of window function",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5561, Invalid use of window function",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5561, Invalid use of window function"
};
static const _error _error_OB_ERR_CONSTRAINT_DUPLICATE = {
      .error_name            = "OB_ERR_CONSTRAINT_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Duplicate constraint name",
      .str_user_error        = "Duplicate constraint name '%.*s'",
      .oracle_errno          = 1,
      .oracle_str_error      = "ORA-00001: unique constraint violated",
      .oracle_str_user_error = "ORA-00001: unique constraint (%.*s) violated"
};
static const _error _error_OB_ERR_CONTRAINT_NOT_FOUND = {
      .error_name            = "OB_ERR_CONTRAINT_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Constraint not found",
      .str_user_error        = "Constraint not found",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5563, Constraint not found",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5563, Constraint not found"
};
static const _error _error_OB_ERR_ALTER_TABLE_ALTER_DUPLICATED_INDEX = {
      .error_name            = "OB_ERR_ALTER_TABLE_ALTER_DUPLICATED_INDEX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Duplicate alter index operations",
      .str_user_error        = "Duplicate alter index operations on column \'%.*s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5564, Duplicate alter index operations",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5564, Duplicate alter index operations on column \'%.*s\'"
};
static const _error _error_OB_EER_INVALID_ARGUMENT_FOR_LOGARITHM = {
      .error_name            = "OB_EER_INVALID_ARGUMENT_FOR_LOGARITHM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_ARGUMENT_FOR_LOGARITHM,
      .sqlstate              = "2201E",
      .str_error             = "Invalid argument for logarithm",
      .str_user_error        = "Invalid argument for logarithm",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5565, Invalid argument for logarithm",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5565, Invalid argument for logarithm"
};
static const _error _error_OB_ERR_REORGANIZE_OUTSIDE_RANGE = {
      .error_name            = "OB_ERR_REORGANIZE_OUTSIDE_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_REORG_OUTSIDE_RANGE,
      .sqlstate              = "HY000",
      .str_error             = "Reorganize of range partitions cannot change total ranges except for last partition where it can extend the range",
      .str_user_error        = "Reorganize of range partitions cannot change total ranges except for last partition where it can extend the range",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5566, Reorganize of range partitions cannot change total ranges except for last partition where it can extend the range",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5566, Reorganize of range partitions cannot change total ranges except for last partition where it can extend the range"
};
static const _error _error_OB_ER_SP_RECURSION_LIMIT = {
      .error_name            = "OB_ER_SP_RECURSION_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_RECURSION_LIMIT,
      .sqlstate              = "HY000",
      .str_error             = "Recursive limit was exceeded",
      .str_user_error        = "Recursive limit %ld (as set by the max_sp_recursion_depth variable) was exceeded for routine",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5567, Recursive limit was exceeded",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5567, Recursive limit %ld (as set by the max_sp_recursion_depth variable) was exceeded for routine"
};
static const _error _error_OB_ER_UNSUPPORTED_PS = {
      .error_name            = "OB_ER_UNSUPPORTED_PS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNSUPPORTED_PS,
      .sqlstate              = "HY000",
      .str_error             = "This command is not supported in the prepared statement protocol yet",
      .str_user_error        = "This command is not supported in the prepared statement protocol yet",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5568, This command is not supported in the prepared statement protocol yet",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5568, This command is not supported in the prepared statement protocol yet"
};
static const _error _error_OB_ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG = {
      .error_name            = "OB_ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG,
      .sqlstate              = "0A000",
      .str_error             = "stmt is not allowed in stored function or trigger",
      .str_user_error        = "%s is not allowed in stored function or trigger",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5569, stmt is not allowed in stored function or trigger",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5569, %s is not allowed in stored function or trigger"
};
static const _error _error_OB_ER_SP_NO_RECURSION = {
      .error_name            = "OB_ER_SP_NO_RECURSION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_NO_RECURSION,
      .sqlstate              = "HY000",
      .str_error             = "Recursive stored functions are not allowed.",
      .str_user_error        = "Recursive stored functions are not allowed.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5570, Recursive stored functions are not allowed.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5570, Recursive stored functions are not allowed."
};
static const _error _error_OB_ER_SP_CASE_NOT_FOUND = {
      .error_name            = "OB_ER_SP_CASE_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_CASE_NOT_FOUND,
      .sqlstate              = "20000",
      .str_error             = "Case not found for CASE statement",
      .str_user_error        = "Case not found for CASE statement",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5571, Case not found for CASE statement",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5571, Case not found for CASE statement"
};
static const _error _error_OB_ERR_INVALID_SPLIT_COUNT = {
      .error_name            = "OB_ERR_INVALID_SPLIT_COUNT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "a partition may be split into exactly two new partitions",
      .str_user_error        = "a partition may be split into exactly two new partitions",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5572, a partition may be split into exactly two new partitions",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5572, a partition may be split into exactly two new partitions"
};
static const _error _error_OB_ERR_INVALID_SPLIT_GRAMMAR = {
      .error_name            = "OB_ERR_INVALID_SPLIT_GRAMMAR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "this physical attribute may not be specified for a table partition",
      .str_user_error        = "this physical attribute may not be specified for a table partition",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5573, this physical attribute may not be specified for a table partition",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5573, this physical attribute may not be specified for a table partition"
};
static const _error _error_OB_ERR_MISS_VALUES = {
      .error_name            = "OB_ERR_MISS_VALUES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "missing VALUES keyword",
      .str_user_error        = "missing VALUES keyword",
      .oracle_errno          = 926,
      .oracle_str_error      = "ORA-00926: missing VALUES keyword",
      .oracle_str_user_error = "ORA-00926: missing VALUES keyword"
};
static const _error _error_OB_ERR_MISS_AT_VALUES = {
      .error_name            = "OB_ERR_MISS_AT_VALUES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "missing AT or VALUES keyword",
      .str_user_error        = "missing AT or VALUES keyword",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5575, missing AT or VALUES keyword",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5575, missing AT or VALUES keyword"
};
static const _error _error_OB_ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG = {
      .error_name            = "OB_ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG,
      .sqlstate              = "HY000",
      .str_error             = "Explicit or implicit commit is not allowed in stored function or trigger.",
      .str_user_error        = "Explicit or implicit commit is not allowed in stored function or trigger.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5576, Explicit or implicit commit is not allowed in stored function or trigger.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5576, Explicit or implicit commit is not allowed in stored function or trigger."
};
static const _error _error_OB_PC_GET_LOCATION_ERROR = {
      .error_name            = "OB_PC_GET_LOCATION_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Plan cache get location failed",
      .str_user_error        = "Plan cache get location failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5577, Plan cache get location failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5577, Plan cache get location failed"
};
static const _error _error_OB_PC_LOCK_CONFLICT = {
      .error_name            = "OB_PC_LOCK_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Plan cache lock conflict",
      .str_user_error        = "Plan cache lock conflict",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5578, Plan cache lock conflict",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5578, Plan cache lock conflict"
};
static const _error _error_OB_ER_SP_NO_RETSET = {
      .error_name            = "OB_ER_SP_NO_RETSET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_NO_RETSET,
      .sqlstate              = "0A000",
      .str_error             = "Not allowed to return a result set from a %s",
      .str_user_error        = "Not allowed to return a result set from a %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5579, Not allowed to return a result set from a %s",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5579, Not allowed to return a result set from a %s"
};
static const _error _error_OB_ER_SP_NORETURNEND = {
      .error_name            = "OB_ER_SP_NORETURNEND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_NORETURNEND,
      .sqlstate              = "2F005",
      .str_error             = "FUNCTION ended without RETURN",
      .str_user_error        = "FUNCTION %s ended without RETURN",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5580, FUNCTION ended without RETURN",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5580, FUNCTION %s ended without RETURN"
};
static const _error _error_OB_ERR_SP_DUP_HANDLER = {
      .error_name            = "OB_ERR_SP_DUP_HANDLER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_DUP_HANDLER,
      .sqlstate              = "42000",
      .str_error             = "Duplicate handler declared in the same block",
      .str_user_error        = "Duplicate handler declared in the same block",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5581, Duplicate handler declared in the same block",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5581, Duplicate handler declared in the same block"
};
static const _error _error_OB_ER_SP_NO_RECURSIVE_CREATE = {
      .error_name            = "OB_ER_SP_NO_RECURSIVE_CREATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_NO_RECURSIVE_CREATE,
      .sqlstate              = "2F003",
      .str_error             = "Can\'t create a routine from within another routine",
      .str_user_error        = "Can\'t create a routine from within another routine",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5582, Can\'t create a routine from within another routine",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5582, Can\'t create a routine from within another routine"
};
static const _error _error_OB_ER_SP_BADRETURN = {
      .error_name            = "OB_ER_SP_BADRETURN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_BADRETURN,
      .sqlstate              = "42000",
      .str_error             = "RETURN is only allowed in a FUNCTION",
      .str_user_error        = "RETURN is only allowed in a FUNCTION",
      .oracle_errno          = 372,
      .oracle_str_error      = "PLS-00372: In a procedure, RETURN statement cannot contain an expression",
      .oracle_str_user_error = "PLS-00372: In a procedure, RETURN statement cannot contain an expression"
};
static const _error _error_OB_ER_SP_BAD_CURSOR_SELECT = {
      .error_name            = "OB_ER_SP_BAD_CURSOR_SELECT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_BAD_CURSOR_SELECT,
      .sqlstate              = "42000",
      .str_error             = "Cursor SELECT must not have INTO",
      .str_user_error        = "Cursor SELECT must not have INTO",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5584, Cursor SELECT must not have INTO",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5584, Cursor SELECT must not have INTO"
};
static const _error _error_OB_ER_SP_BAD_SQLSTATE = {
      .error_name            = "OB_ER_SP_BAD_SQLSTATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_BAD_SQLSTATE,
      .sqlstate              = "42000",
      .str_error             = "Bad SQLSTATE",
      .str_user_error        = "Bad SQLSTATE: \'%.*s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5585, Bad SQLSTATE",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5585, Bad SQLSTATE: \'%.*s\'"
};
static const _error _error_OB_ER_SP_VARCOND_AFTER_CURSHNDLR = {
      .error_name            = "OB_ER_SP_VARCOND_AFTER_CURSHNDLR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_VARCOND_AFTER_CURSHNDLR,
      .sqlstate              = "42000",
      .str_error             = "Variable or condition declaration after cursor or handler declaration",
      .str_user_error        = "Variable or condition declaration after cursor or handler declaration",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5586, Variable or condition declaration after cursor or handler declaration",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5586, Variable or condition declaration after cursor or handler declaration"
};
static const _error _error_OB_ER_SP_CURSOR_AFTER_HANDLER = {
      .error_name            = "OB_ER_SP_CURSOR_AFTER_HANDLER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_CURSOR_AFTER_HANDLER,
      .sqlstate              = "42000",
      .str_error             = "Cursor declaration after handler declaration",
      .str_user_error        = "Cursor declaration after handler declaration",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5587, Cursor declaration after handler declaration",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5587, Cursor declaration after handler declaration"
};
static const _error _error_OB_ER_SP_WRONG_NAME = {
      .error_name            = "OB_ER_SP_WRONG_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_WRONG_NAME,
      .sqlstate              = "42000",
      .str_error             = "Incorrect routine name",
      .str_user_error        = "Incorrect routine name \'%.*s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5588, Incorrect routine name",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5588, Incorrect routine name \'%.*s\'"
};
static const _error _error_OB_ER_SP_CURSOR_ALREADY_OPEN = {
      .error_name            = "OB_ER_SP_CURSOR_ALREADY_OPEN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_CURSOR_ALREADY_OPEN,
      .sqlstate              = "24000",
      .str_error             = "Cursor is already open",
      .str_user_error        = "Cursor is already open",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5589, Cursor is already open",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5589, Cursor is already open"
};
static const _error _error_OB_ER_SP_CURSOR_NOT_OPEN = {
      .error_name            = "OB_ER_SP_CURSOR_NOT_OPEN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_CURSOR_NOT_OPEN,
      .sqlstate              = "24000",
      .str_error             = "Cursor is not open",
      .str_user_error        = "Cursor is not open",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5590, Cursor is not open",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5590, Cursor is not open"
};
static const _error _error_OB_ER_SP_CANT_SET_AUTOCOMMIT = {
      .error_name            = "OB_ER_SP_CANT_SET_AUTOCOMMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_CANT_SET_AUTOCOMMIT,
      .sqlstate              = "HY000",
      .str_error             = "Not allowed to set autocommit from a stored function or trigger",
      .str_user_error        = "Not allowed to set autocommit from a stored function or trigger",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5591, Not allowed to set autocommit from a stored function or trigger",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5591, Not allowed to set autocommit from a stored function or trigger"
};
static const _error _error_OB_ER_SP_NOT_VAR_ARG = {
      .error_name            = "OB_ER_SP_NOT_VAR_ARG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_NOT_VAR_ARG,
      .sqlstate              = "42000",
      .str_error             = "OUT or INOUT argument for routine is not a variable",
      .str_user_error        = "OUT or INOUT argument %d for routine %.*s is not a variable",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5592, OUT or INOUT argument for routine is not a variable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5592, OUT or INOUT argument %d for routine %.*s is not a variable"
};
static const _error _error_OB_ER_SP_LILABEL_MISMATCH = {
      .error_name            = "OB_ER_SP_LILABEL_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_LILABEL_MISMATCH,
      .sqlstate              = "42000",
      .str_error             = "with no matching label",
      .str_user_error        = "%s with no matching label: %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5593, with no matching label",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5593, %s with no matching label: %s"
};
static const _error _error_OB_ERR_TRUNCATE_ILLEGAL_FK = {
      .error_name            = "OB_ERR_TRUNCATE_ILLEGAL_FK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRUNCATE_ILLEGAL_FK,
      .sqlstate              = "42000",
      .str_error             = "Cannot truncate a table referenced in a foreign key constraint",
      .str_user_error        = "Cannot truncate a table referenced in a foreign key constraint %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5594, Cannot truncate a table referenced in a foreign key constraint",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5594, Cannot truncate a table referenced in a foreign key constraint %.*s"
};
static const _error _error_OB_ERR_DUP_KEY = {
      .error_name            = "OB_ERR_DUP_KEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DUP_KEY,
      .sqlstate              = "23000",
      .str_error             = "Can't write; duplicate key in table",
      .str_user_error        = "Can't write; duplicate key in table \'%.*s\'",
      .oracle_errno          = 1,
      .oracle_str_error      = "ORA-00001: unique constraint violated",
      .oracle_str_user_error = "ORA-00001: unique constraint (%.*s) violated"
};
static const _error _error_OB_ER_INVALID_USE_OF_NULL = {
      .error_name            = "OB_ER_INVALID_USE_OF_NULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_USE_OF_NULL,
      .sqlstate              = "22004",
      .str_error             = "Invalid use of NULL value",
      .str_user_error        = "Invalid use of NULL value",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5596, Invalid use of NULL value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5596, Invalid use of NULL value"
};
static const _error _error_OB_ERR_SPLIT_LIST_LESS_VALUE = {
      .error_name            = "OB_ERR_SPLIT_LIST_LESS_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "last resulting partition cannot contain bounds",
      .str_user_error        = "last resulting partition cannot contain bounds",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5597, last resulting partition cannot contain bounds",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5597, last resulting partition cannot contain bounds"
};
static const _error _error_OB_ERR_ADD_PARTITION_TO_DEFAULT_LIST = {
      .error_name            = "OB_ERR_ADD_PARTITION_TO_DEFAULT_LIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot add partition when DEFAULT partition exists",
      .str_user_error        = "cannot add partition when DEFAULT partition exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5598, cannot add partition when DEFAULT partition exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5598, cannot add partition when DEFAULT partition exists"
};
static const _error _error_OB_ERR_SPLIT_INTO_ONE_PARTITION = {
      .error_name            = "OB_ERR_SPLIT_INTO_ONE_PARTITION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot split partition into one partition, use rename instead",
      .str_user_error        = "cannot split partition into one partition, use rename instead",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5599, cannot split partition into one partition, use rename instead",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5599, cannot split partition into one partition, use rename instead"
};
static const _error _error_OB_ERR_NO_TENANT_PRIVILEGE = {
      .error_name            = "OB_ERR_NO_TENANT_PRIVILEGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "can not create user in sys tenant",
      .str_user_error        = "can not create user %s in sys tenant, name %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5600, can not create user in sys tenant",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5600, can not create user %s in sys tenant, name %.*s"
};
static const _error _error_OB_ERR_INVALID_PERCENTAGE = {
      .error_name            = "OB_ERR_INVALID_PERCENTAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Percentage should between 1 and 99",
      .str_user_error        = "Percentage should between 1 and 99",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5601, Percentage should between 1 and 99",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5601, Percentage should between 1 and 99"
};
static const _error _error_OB_ERR_COLLECT_HISTOGRAM = {
      .error_name            = "OB_ERR_COLLECT_HISTOGRAM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Should collect histogram after major freeze",
      .str_user_error        = "Should collect histogram after major freeze",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5602, Should collect histogram after major freeze",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5602, Should collect histogram after major freeze"
};
static const _error _error_OB_ER_TEMP_TABLE_IN_USE = {
      .error_name            = "OB_ER_TEMP_TABLE_IN_USE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "0A000",
      .str_error             = "Attempt to create, alter or drop an index on temporary table already in use",
      .str_user_error        = "Attempt to create, alter or drop an index on temporary table already in use",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5603, Attempt to create, alter or drop an index on temporary table already in use",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5603, Attempt to create, alter or drop an index on temporary table already in use"
};
static const _error _error_OB_ERR_INVALID_NLS_PARAMETER_STRING = {
      .error_name            = "OB_ERR_INVALID_NLS_PARAMETER_STRING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid NLS parameter string used in SQL function",
      .str_user_error        = "invalid NLS parameter string used in SQL function",
      .oracle_errno          = 12702,
      .oracle_str_error      = "ORA-12702: invalid NLS parameter string used in SQL function",
      .oracle_str_user_error = "ORA-12702: invalid NLS parameter string used in SQL function"
};
static const _error _error_OB_ERR_DATETIME_INTERVAL_PRECISION_OUT_OF_RANGE = {
      .error_name            = "OB_ERR_DATETIME_INTERVAL_PRECISION_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "datetime/interval precision is out of range",
      .str_user_error        = "datetime/interval precision is out of range",
      .oracle_errno          = 30088,
      .oracle_str_error      = "ORA-30088: datetime/interval precision is out of range",
      .oracle_str_user_error = "ORA-30088: datetime/interval precision is out of range"
};
static const _error _error_OB_ERR_CMD_NOT_PROPERLY_ENDED = {
      .error_name            = "OB_ERR_CMD_NOT_PROPERLY_ENDED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "SQL command not properly ended",
      .str_user_error        = "SQL command not properly ended",
      .oracle_errno          = 933,
      .oracle_str_error      = "ORA-00933: SQL command not properly ended",
      .oracle_str_user_error = "ORA-00933: SQL command not properly ended"
};
static const _error _error_OB_ERR_INVALID_NUMBER_FORMAT_MODEL = {
      .error_name            = "OB_ERR_INVALID_NUMBER_FORMAT_MODEL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "invalid number format model",
      .str_user_error        = "invalid number format model",
      .oracle_errno          = 1481,
      .oracle_str_error      = "ORA-01481: invalid number format model",
      .oracle_str_user_error = "ORA-01481: invalid number format model"
};
static const _error _error_OB_WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED = {
      .error_name            = "OB_WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_FIELD_TERMINATORS,
      .sqlstate              = "HY000",
      .str_error             = "Non-ASCII separator arguments are not fully supported",
      .str_user_error        = "Non-ASCII separator arguments are not fully supported",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5609, Non-ASCII separator arguments are not fully supported",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5609, Non-ASCII separator arguments are not fully supported"
};
static const _error _error_OB_WARN_AMBIGUOUS_FIELD_TERM = {
      .error_name            = "OB_WARN_AMBIGUOUS_FIELD_TERM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_FIELD_TERMINATORS,
      .sqlstate              = "HY000",
      .str_error             = "First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY",
      .str_user_error        = "First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5610, First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5610, First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY"
};
static const _error _error_OB_WARN_TOO_FEW_RECORDS = {
      .error_name            = "OB_WARN_TOO_FEW_RECORDS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_TOO_FEW_RECORDS,
      .sqlstate              = "01000",
      .str_error             = "Row doesn't contain data for all columns",
      .str_user_error        = "Row %ld doesn't contain data for all columns",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5611, Row doesn't contain data for all columns",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5611, Row %ld doesn't contain data for all columns"
};
static const _error _error_OB_WARN_TOO_MANY_RECORDS = {
      .error_name            = "OB_WARN_TOO_MANY_RECORDS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_TOO_MANY_RECORDS,
      .sqlstate              = "01000",
      .str_error             = "Row was truncated; it contained more data than there were input columns",
      .str_user_error        = "Row %ld was truncated; it contained more data than there were input columns",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5612, Row was truncated; it contained more data than there were input columns",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5612, Row %ld was truncated; it contained more data than there were input columns"
};
static const _error _error_OB_ERR_TOO_MANY_VALUES = {
      .error_name            = "OB_ERR_TOO_MANY_VALUES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "too many values",
      .str_user_error        = "too many values",
      .oracle_errno          = 913,
      .oracle_str_error      = "ORA-00913: too many values",
      .oracle_str_user_error = "ORA-00913: too many values"
};
static const _error _error_OB_ERR_NOT_ENOUGH_VALUES = {
      .error_name            = "OB_ERR_NOT_ENOUGH_VALUES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not enough values",
      .str_user_error        = "not enough values",
      .oracle_errno          = 947,
      .oracle_str_error      = "ORA-00947: not enough values",
      .oracle_str_user_error = "ORA-00947: not enough values"
};
static const _error _error_OB_ERR_MORE_THAN_ONE_ROW = {
      .error_name            = "OB_ERR_MORE_THAN_ONE_ROW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "single-row subquery returns more than one row",
      .str_user_error        = "single-row subquery returns more than one row",
      .oracle_errno          = 1427,
      .oracle_str_error      = "ORA-01427: single-row subquery returns more than one row",
      .oracle_str_user_error = "ORA-01427: single-row subquery returns more than one row"
};
static const _error _error_OB_ERR_NOT_SUBQUERY = {
      .error_name            = "OB_ERR_NOT_SUBQUERY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "UPDATE ... SET expression must be a subquery",
      .str_user_error        = "UPDATE ... SET expression must be a subquery",
      .oracle_errno          = 1767,
      .oracle_str_error      = "ORA-01767: UPDATE ... SET expression must be a subquery",
      .oracle_str_user_error = "ORA-01767: UPDATE ... SET expression must be a subquery"
};
static const _error _error_OB_INAPPROPRIATE_INTO = {
      .error_name            = "OB_INAPPROPRIATE_INTO",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "inappropriate INTO",
      .str_user_error        = "inappropriate INTO",
      .oracle_errno          = 1744,
      .oracle_str_error      = "ORA-01744: inappropriate INTO",
      .oracle_str_user_error = "ORA-01744: inappropriate INTO"
};
static const _error _error_OB_ERR_TABLE_IS_REFERENCED = {
      .error_name            = "OB_ERR_TABLE_IS_REFERENCED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_FK_CANNOT_DROP_PARENT,
      .sqlstate              = "HY000",
      .str_error             = "Cannot drop parent table referenced by a foreign key constraint on child table",
      .str_user_error        = "Cannot drop table \'%.*s\' referenced by a foreign key constraint \'%.*s\' on table \'%.*s\'",
      .oracle_errno          = 2449,
      .oracle_str_error      = "ORA-02449: unique/primary keys in table referenced by foreign keys",
      .oracle_str_user_error = "ORA-02449: unique/primary keys in table (%.*s) referenced by foreign key (%.*s) on table (%.*s)"
};
static const _error _error_OB_ERR_QUALIFIER_EXISTS_FOR_USING_COLUMN = {
      .error_name            = "OB_ERR_QUALIFIER_EXISTS_FOR_USING_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Column part of using clause can not have qualifier",
      .str_user_error        = "Column part of using clause can not have qualifier",
      .oracle_errno          = 25154,
      .oracle_str_error      = "ORA-25154: Column part of using clause can not have qualifier",
      .oracle_str_user_error = "ORA-25154: Column part of using clause can not have qualifier"
};
static const _error _error_OB_ERR_OUTER_JOIN_NESTED = {
      .error_name            = "OB_ERR_OUTER_JOIN_NESTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "two tables cannot be outer-joined to each other",
      .str_user_error        = "two tables cannot be outer-joined to each other",
      .oracle_errno          = 1416,
      .oracle_str_error      = "ORA-01416: two tables cannot be outer-joined to each other",
      .oracle_str_user_error = "ORA-01416: two tables cannot be outer-joined to each other"
};
static const _error _error_OB_ERR_MULTI_OUTER_JOIN_TABLE = {
      .error_name            = "OB_ERR_MULTI_OUTER_JOIN_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "a predicate may reference only one outer-joined table",
      .str_user_error        = "a predicate may reference only one outer-joined table",
      .oracle_errno          = 1468,
      .oracle_str_error      = "ORA-01468: a predicate may reference only one outer-joined table",
      .oracle_str_user_error = "ORA-01468: a predicate may reference only one outer-joined table"
};
static const _error _error_OB_ERR_OUTER_JOIN_ON_CORRELATION_COLUMN = {
      .error_name            = "OB_ERR_OUTER_JOIN_ON_CORRELATION_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "an outer join cannot be specified on a correlation column",
      .str_user_error        = "an outer join cannot be specified on a correlation column",
      .oracle_errno          = 1705,
      .oracle_str_error      = "ORA-01705: an outer join cannot be specified on a correlation column",
      .oracle_str_user_error = "ORA-01705: an outer join cannot be specified on a correlation column"
};
static const _error _error_OB_ERR_OUTER_JOIN_AMBIGUOUS = {
      .error_name            = "OB_ERR_OUTER_JOIN_AMBIGUOUS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "outer join operator (+) not allowed in operand of OR or IN",
      .str_user_error        = "outer join operator (+) not allowed in operand of OR or IN",
      .oracle_errno          = 1719,
      .oracle_str_error      = "ORA-01719: outer join operator (+) not allowed in operand of OR or IN",
      .oracle_str_user_error = "ORA-01719: outer join operator (+) not allowed in operand of OR or IN"
};
static const _error _error_OB_ERR_OUTER_JOIN_WITH_SUBQUERY = {
      .error_name            = "OB_ERR_OUTER_JOIN_WITH_SUBQUERY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "a column may not be outer-joined to a subquery",
      .str_user_error        = "a column may not be outer-joined to a subquery",
      .oracle_errno          = 1799,
      .oracle_str_error      = "ORA-01799: a column may not be outer-joined to a subquery",
      .oracle_str_user_error = "ORA-01799: a column may not be outer-joined to a subquery"
};
static const _error _error_OB_ERR_OUTER_JOIN_WITH_ANSI_JOIN = {
      .error_name            = "OB_ERR_OUTER_JOIN_WITH_ANSI_JOIN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "old style outer join (+) cannot be used with ANSI joins",
      .str_user_error        = "old style outer join (+) cannot be used with ANSI joins",
      .oracle_errno          = 25156,
      .oracle_str_error      = "ORA-25156: old style outer join (+) cannot be used with ANSI joins",
      .oracle_str_user_error = "ORA-25156: old style outer join (+) cannot be used with ANSI joins"
};
static const _error _error_OB_ERR_OUTER_JOIN_NOT_ALLOWED = {
      .error_name            = "OB_ERR_OUTER_JOIN_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "outer join operator (+) is not allowed here",
      .str_user_error        = "outer join operator (+) is not allowed here",
      .oracle_errno          = 30563,
      .oracle_str_error      = "ORA-30563: outer join operator (+) is not allowed here",
      .oracle_str_user_error = "ORA-30563: outer join operator (+) is not allowed here"
};
static const _error _error_OB_SCHEMA_EAGAIN = {
      .error_name            = "OB_SCHEMA_EAGAIN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Schema try again",
      .str_user_error        = "Schema try again",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5627, Schema try again",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5627, Schema try again"
};
static const _error _error_OB_ERR_ZERO_LEN_COL = {
      .error_name            = "OB_ERR_ZERO_LEN_COL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "zero-length columns are not allowed",
      .str_user_error        = "zero-length columns are not allowed",
      .oracle_errno          = 1723,
      .oracle_str_error      = "ORA-01723: zero-length columns are not allowed",
      .oracle_str_user_error = "ORA-01723: zero-length columns are not allowed"
};
static const _error _error_OB_ERR_YEAR_CONFLICTS_WITH_JULIAN_DATE = {
      .error_name            = "OB_ERR_YEAR_CONFLICTS_WITH_JULIAN_DATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "year conflicts with Julian date",
      .str_user_error        = "year conflicts with Julian date",
      .oracle_errno          = 1831,
      .oracle_str_error      = "ORA-01831: year conflicts with Julian date",
      .oracle_str_user_error = "ORA-01831: year conflicts with Julian date"
};
static const _error _error_OB_ERR_DAY_OF_YEAR_CONFLICTS_WITH_JULIAN_DATE = {
      .error_name            = "OB_ERR_DAY_OF_YEAR_CONFLICTS_WITH_JULIAN_DATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "day of year conflicts with Julian date",
      .str_user_error        = "day of year conflicts with Julian date",
      .oracle_errno          = 1832,
      .oracle_str_error      = "ORA-01832: day of year conflicts with Julian date",
      .oracle_str_user_error = "ORA-01832: day of year conflicts with Julian date"
};
static const _error _error_OB_ERR_MONTH_CONFLICTS_WITH_JULIAN_DATE = {
      .error_name            = "OB_ERR_MONTH_CONFLICTS_WITH_JULIAN_DATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "month conflicts with Julian date",
      .str_user_error        = "month conflicts with Julian date",
      .oracle_errno          = 1833,
      .oracle_str_error      = "ORA-01833: month conflicts with Julian date",
      .oracle_str_user_error = "ORA-01833: month conflicts with Julian date"
};
static const _error _error_OB_ERR_DAY_OF_MONTH_CONFLICTS_WITH_JULIAN_DATE = {
      .error_name            = "OB_ERR_DAY_OF_MONTH_CONFLICTS_WITH_JULIAN_DATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "day of month conflicts with Julian date",
      .str_user_error        = "day of month conflicts with Julian date",
      .oracle_errno          = 1834,
      .oracle_str_error      = "ORA-01834: day of month conflicts with Julian date",
      .oracle_str_user_error = "ORA-01834: day of month conflicts with Julian date"
};
static const _error _error_OB_ERR_DAY_OF_WEEK_CONFLICTS_WITH_JULIAN_DATE = {
      .error_name            = "OB_ERR_DAY_OF_WEEK_CONFLICTS_WITH_JULIAN_DATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "day of week conflicts with Julian date",
      .str_user_error        = "day of week conflicts with Julian date",
      .oracle_errno          = 1835,
      .oracle_str_error      = "ORA-01835: day of week conflicts with Julian date",
      .oracle_str_user_error = "ORA-01835: day of week conflicts with Julian date"
};
static const _error _error_OB_ERR_HOUR_CONFLICTS_WITH_SECONDS_IN_DAY = {
      .error_name            = "OB_ERR_HOUR_CONFLICTS_WITH_SECONDS_IN_DAY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "hour conflicts with seconds in day",
      .str_user_error        = "hour conflicts with seconds in day",
      .oracle_errno          = 1836,
      .oracle_str_error      = "ORA-01836: hour conflicts with seconds in day",
      .oracle_str_user_error = "ORA-01836: hour conflicts with seconds in day"
};
static const _error _error_OB_ERR_MINUTES_OF_HOUR_CONFLICTS_WITH_SECONDS_IN_DAY = {
      .error_name            = "OB_ERR_MINUTES_OF_HOUR_CONFLICTS_WITH_SECONDS_IN_DAY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "minutes of hour conflicts with seconds in day",
      .str_user_error        = "minutes of hour conflicts with seconds in day",
      .oracle_errno          = 1837,
      .oracle_str_error      = "ORA-01837: minutes of hour conflicts with seconds in day",
      .oracle_str_user_error = "ORA-01837: minutes of hour conflicts with seconds in day"
};
static const _error _error_OB_ERR_SECONDS_OF_MINUTE_CONFLICTS_WITH_SECONDS_IN_DAY = {
      .error_name            = "OB_ERR_SECONDS_OF_MINUTE_CONFLICTS_WITH_SECONDS_IN_DAY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "seconds of minute conflicts with seconds in day",
      .str_user_error        = "seconds of minute conflicts with seconds in day",
      .oracle_errno          = 1838,
      .oracle_str_error      = "ORA-01838: seconds of minute conflicts with seconds in day",
      .oracle_str_user_error = "ORA-01838: seconds of minute conflicts with seconds in day"
};
static const _error _error_OB_ERR_DATE_NOT_VALID_FOR_MONTH_SPECIFIED = {
      .error_name            = "OB_ERR_DATE_NOT_VALID_FOR_MONTH_SPECIFIED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "date not valid for month specified",
      .str_user_error        = "date not valid for month specified",
      .oracle_errno          = 1839,
      .oracle_str_error      = "ORA-01839: date not valid for month specified",
      .oracle_str_user_error = "ORA-01839: date not valid for month specified"
};
static const _error _error_OB_ERR_INPUT_VALUE_NOT_LONG_ENOUGH = {
      .error_name            = "OB_ERR_INPUT_VALUE_NOT_LONG_ENOUGH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "input value not long enough for date format",
      .str_user_error        = "input value not long enough for date format",
      .oracle_errno          = 1840,
      .oracle_str_error      = "ORA-01840: input value not long enough for date format",
      .oracle_str_user_error = "ORA-01840: input value not long enough for date format"
};
static const _error _error_OB_ERR_INVALID_YEAR_VALUE = {
      .error_name            = "OB_ERR_INVALID_YEAR_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "(full) year must be between -4713 and +9999, and not be 0",
      .str_user_error        = "(full) year must be between -4713 and +9999, and not be 0",
      .oracle_errno          = 1841,
      .oracle_str_error      = "ORA-01841: (full) year must be between -4713 and +9999, and not be 0",
      .oracle_str_user_error = "ORA-01841: (full) year must be between -4713 and +9999, and not be 0"
};
static const _error _error_OB_ERR_INVALID_QUARTER_VALUE = {
      .error_name            = "OB_ERR_INVALID_QUARTER_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "quarter must be between 1 and 4",
      .str_user_error        = "quarter must be between 1 and 4",
      .oracle_errno          = 1842,
      .oracle_str_error      = "ORA-01842: quarter must be between 1 and 4",
      .oracle_str_user_error = "ORA-01842: quarter must be between 1 and 4"
};
static const _error _error_OB_ERR_INVALID_MONTH = {
      .error_name            = "OB_ERR_INVALID_MONTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not a valid month",
      .str_user_error        = "not a valid month",
      .oracle_errno          = 1843,
      .oracle_str_error      = "ORA-01843: not a valid month",
      .oracle_str_user_error = "ORA-01843: not a valid month"
};
static const _error _error_OB_ERR_INVALID_DAY_OF_THE_WEEK = {
      .error_name            = "OB_ERR_INVALID_DAY_OF_THE_WEEK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not a valid day of the week",
      .str_user_error        = "not a valid day of the week",
      .oracle_errno          = 1846,
      .oracle_str_error      = "ORA-01846: not a valid day of the week",
      .oracle_str_user_error = "ORA-01846: not a valid day of the week"
};
static const _error _error_OB_ERR_INVALID_DAY_OF_YEAR_VALUE = {
      .error_name            = "OB_ERR_INVALID_DAY_OF_YEAR_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "day of year must be between 1 and 365 (366 for leap year)",
      .str_user_error        = "day of year must be between 1 and 365 (366 for leap year)",
      .oracle_errno          = 1848,
      .oracle_str_error      = "ORA-01848: day of year must be between 1 and 365 (366 for leap year)",
      .oracle_str_user_error = "ORA-01848: day of year must be between 1 and 365 (366 for leap year)"
};
static const _error _error_OB_ERR_INVALID_HOUR12_VALUE = {
      .error_name            = "OB_ERR_INVALID_HOUR12_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "hour must be between 1 and 12",
      .str_user_error        = "hour must be between 1 and 12",
      .oracle_errno          = 1849,
      .oracle_str_error      = "ORA-01849: hour must be between 1 and 12",
      .oracle_str_user_error = "ORA-01849: hour must be between 1 and 12"
};
static const _error _error_OB_ERR_INVALID_HOUR24_VALUE = {
      .error_name            = "OB_ERR_INVALID_HOUR24_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "hour must be between 0 and 23",
      .str_user_error        = "hour must be between 0 and 23",
      .oracle_errno          = 1850,
      .oracle_str_error      = "ORA-01850: hour must be between 0 and 23",
      .oracle_str_user_error = "ORA-01850: hour must be between 0 and 23"
};
static const _error _error_OB_ERR_INVALID_MINUTES_VALUE = {
      .error_name            = "OB_ERR_INVALID_MINUTES_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "minutes must be between 0 and 59",
      .str_user_error        = "minutes must be between 0 and 59",
      .oracle_errno          = 1851,
      .oracle_str_error      = "ORA-01851: minutes must be between 0 and 59",
      .oracle_str_user_error = "ORA-01851: minutes must be between 0 and 59"
};
static const _error _error_OB_ERR_INVALID_SECONDS_VALUE = {
      .error_name            = "OB_ERR_INVALID_SECONDS_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "seconds must be between 0 and 59",
      .str_user_error        = "seconds must be between 0 and 59",
      .oracle_errno          = 1852,
      .oracle_str_error      = "ORA-01852: seconds must be between 0 and 59",
      .oracle_str_user_error = "ORA-01852: seconds must be between 0 and 59"
};
static const _error _error_OB_ERR_INVALID_SECONDS_IN_DAY_VALUE = {
      .error_name            = "OB_ERR_INVALID_SECONDS_IN_DAY_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "seconds in day must be between 0 and 86399",
      .str_user_error        = "seconds in day must be between 0 and 86399",
      .oracle_errno          = 1853,
      .oracle_str_error      = "ORA-01853: seconds in day must be between 0 and 86399",
      .oracle_str_user_error = "ORA-01853: seconds in day must be between 0 and 86399"
};
static const _error _error_OB_ERR_INVALID_JULIAN_DATE_VALUE = {
      .error_name            = "OB_ERR_INVALID_JULIAN_DATE_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "julian date must be between 1 and 5373484",
      .str_user_error        = "julian date must be between 1 and 5373484",
      .oracle_errno          = 1854,
      .oracle_str_error      = "ORA-01854: julian date must be between 1 and 5373484",
      .oracle_str_user_error = "ORA-01854: julian date must be between 1 and 5373484"
};
static const _error _error_OB_ERR_AM_OR_PM_REQUIRED = {
      .error_name            = "OB_ERR_AM_OR_PM_REQUIRED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "AM/A.M. or PM/P.M. required",
      .str_user_error        = "AM/A.M. or PM/P.M. required",
      .oracle_errno          = 1855,
      .oracle_str_error      = "ORA-01855: AM/A.M. or PM/P.M. required",
      .oracle_str_user_error = "ORA-01855: AM/A.M. or PM/P.M. required"
};
static const _error _error_OB_ERR_BC_OR_AD_REQUIRED = {
      .error_name            = "OB_ERR_BC_OR_AD_REQUIRED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "BC/B.C. or AD/A.D. required",
      .str_user_error        = "BC/B.C. or AD/A.D. required",
      .oracle_errno          = 1856,
      .oracle_str_error      = "ORA-01856: BC/B.C. or AD/A.D. required",
      .oracle_str_user_error = "ORA-01856: BC/B.C. or AD/A.D. required"
};
static const _error _error_OB_ERR_FORMAT_CODE_APPEARS_TWICE = {
      .error_name            = "OB_ERR_FORMAT_CODE_APPEARS_TWICE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "format code appears twice",
      .str_user_error        = "format code appears twice",
      .oracle_errno          = 1810,
      .oracle_str_error      = "ORA-01810: format code appears twice",
      .oracle_str_user_error = "ORA-01810: format code appears twice"
};
static const _error _error_OB_ERR_DAY_OF_WEEK_SPECIFIED_MORE_THAN_ONCE = {
      .error_name            = "OB_ERR_DAY_OF_WEEK_SPECIFIED_MORE_THAN_ONCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "day of week may only be specified once",
      .str_user_error        = "day of week may only be specified once",
      .oracle_errno          = 1817,
      .oracle_str_error      = "ORA-01817: day of week may only be specified once",
      .oracle_str_user_error = "ORA-01817: day of week may only be specified once"
};
static const _error _error_OB_ERR_SIGNED_YEAR_PRECLUDES_USE_OF_BC_AD = {
      .error_name            = "OB_ERR_SIGNED_YEAR_PRECLUDES_USE_OF_BC_AD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "signed year precludes use of BC/AD",
      .str_user_error        = "signed year precludes use of BC/AD",
      .oracle_errno          = 1819,
      .oracle_str_error      = "ORA-01819: signed year precludes use of BC/AD",
      .oracle_str_user_error = "ORA-01819: signed year precludes use of BC/AD"
};
static const _error _error_OB_ERR_JULIAN_DATE_PRECLUDES_USE_OF_DAY_OF_YEAR = {
      .error_name            = "OB_ERR_JULIAN_DATE_PRECLUDES_USE_OF_DAY_OF_YEAR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Julian date precludes use of day of year",
      .str_user_error        = "Julian date precludes use of day of year",
      .oracle_errno          = 1811,
      .oracle_str_error      = "ORA-01811: Julian date precludes use of day of year",
      .oracle_str_user_error = "ORA-01811: Julian date precludes use of day of year"
};
static const _error _error_OB_ERR_YEAR_MAY_ONLY_BE_SPECIFIED_ONCE = {
      .error_name            = "OB_ERR_YEAR_MAY_ONLY_BE_SPECIFIED_ONCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "year may only be specified once",
      .str_user_error        = "year may only be specified once",
      .oracle_errno          = 1812,
      .oracle_str_error      = "ORA-01812: year may only be specified once",
      .oracle_str_user_error = "ORA-01812: year may only be specified once"
};
static const _error _error_OB_ERR_HOUR_MAY_ONLY_BE_SPECIFIED_ONCE = {
      .error_name            = "OB_ERR_HOUR_MAY_ONLY_BE_SPECIFIED_ONCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "hour may only be specified once",
      .str_user_error        = "hour may only be specified once",
      .oracle_errno          = 1813,
      .oracle_str_error      = "ORA-01813: hour may only be specified once",
      .oracle_str_user_error = "ORA-01813: hour may only be specified once"
};
static const _error _error_OB_ERR_AM_PM_CONFLICTS_WITH_USE_OF_AM_DOT_PM_DOT = {
      .error_name            = "OB_ERR_AM_PM_CONFLICTS_WITH_USE_OF_AM_DOT_PM_DOT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "AM/PM conflicts with use of A.M./P.M.",
      .str_user_error        = "AM/PM conflicts with use of A.M./P.M.",
      .oracle_errno          = 1814,
      .oracle_str_error      = "ORA-01814: AM/PM conflicts with use of A.M./P.M.",
      .oracle_str_user_error = "ORA-01814: AM/PM conflicts with use of A.M./P.M."
};
static const _error _error_OB_ERR_BC_AD_CONFLICT_WITH_USE_OF_BC_DOT_AD_DOT = {
      .error_name            = "OB_ERR_BC_AD_CONFLICT_WITH_USE_OF_BC_DOT_AD_DOT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "BC/AD conflicts with use of B.C./A.D.",
      .str_user_error        = "BC/AD conflicts with use of B.C./A.D.",
      .oracle_errno          = 1815,
      .oracle_str_error      = "ORA-01815: BC/AD conflicts with use of B.C./A.D.",
      .oracle_str_user_error = "ORA-01815: BC/AD conflicts with use of B.C./A.D."
};
static const _error _error_OB_ERR_MONTH_MAY_ONLY_BE_SPECIFIED_ONCE = {
      .error_name            = "OB_ERR_MONTH_MAY_ONLY_BE_SPECIFIED_ONCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "month may only be specified once",
      .str_user_error        = "month may only be specified once",
      .oracle_errno          = 1816,
      .oracle_str_error      = "ORA-01816: month may only be specified once",
      .oracle_str_user_error = "ORA-01816: month may only be specified once"
};
static const _error _error_OB_ERR_DAY_OF_WEEK_MAY_ONLY_BE_SPECIFIED_ONCE = {
      .error_name            = "OB_ERR_DAY_OF_WEEK_MAY_ONLY_BE_SPECIFIED_ONCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "day of week may only be specified once",
      .str_user_error        = "day of week may only be specified once",
      .oracle_errno          = 1817,
      .oracle_str_error      = "ORA-01817: day of week may only be specified once",
      .oracle_str_user_error = "ORA-01817: day of week may only be specified once"
};
static const _error _error_OB_ERR_FORMAT_CODE_CANNOT_APPEAR = {
      .error_name            = "OB_ERR_FORMAT_CODE_CANNOT_APPEAR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "format code cannot appear in date input format",
      .str_user_error        = "format code cannot appear in date input format",
      .oracle_errno          = 1820,
      .oracle_str_error      = "ORA-01820: format code cannot appear in date input format",
      .oracle_str_user_error = "ORA-01820: format code cannot appear in date input format"
};
static const _error _error_OB_ERR_NON_NUMERIC_CHARACTER_VALUE = {
      .error_name            = "OB_ERR_NON_NUMERIC_CHARACTER_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "a non-numeric character was found where a numeric was expected",
      .str_user_error        = "a non-numeric character was found where a numeric was expected",
      .oracle_errno          = 1858,
      .oracle_str_error      = "ORA-01858: a non-numeric character was found where a numeric was expected",
      .oracle_str_user_error = "ORA-01858: a non-numeric character was found where a numeric was expected"
};
static const _error _error_OB_INVALID_MERIDIAN_INDICATOR_USE = {
      .error_name            = "OB_INVALID_MERIDIAN_INDICATOR_USE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "'HH24' precludes use of meridian indicator",
      .str_user_error        = "'HH24' precludes use of meridian indicator",
      .oracle_errno          = 1818,
      .oracle_str_error      = "ORA-01818: 'HH24' precludes use of meridian indicator",
      .oracle_str_user_error = "ORA-01818: 'HH24' precludes use of meridian indicator"
};
static const _error _error_OB_ERR_INVALID_CHAR_FOLLOWING_ESCAPE_CHAR = {
      .error_name            = "OB_ERR_INVALID_CHAR_FOLLOWING_ESCAPE_CHAR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "missing or illegal character following the escape character",
      .str_user_error        = "missing or illegal character following the escape character",
      .oracle_errno          = 1424,
      .oracle_str_error      = "ORA-01424: missing or illegal character following the escape character",
      .oracle_str_user_error = "ORA-01424: missing or illegal character following the escape character"
};
static const _error _error_OB_ERR_INVALID_ESCAPE_CHAR_LENGTH = {
      .error_name            = "OB_ERR_INVALID_ESCAPE_CHAR_LENGTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "escape character must be character string of length 1",
      .str_user_error        = "escape character must be character string of length 1",
      .oracle_errno          = 1425,
      .oracle_str_error      = "ORA-01425: escape character must be character string of length 1",
      .oracle_str_user_error = "ORA-01425: escape character must be character string of length 1"
};
static const _error _error_OB_ERR_DAY_OF_MONTH_RANGE = {
      .error_name            = "OB_ERR_DAY_OF_MONTH_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "day of month must be between 1 and last day of month",
      .str_user_error        = "day of month must be between 1 and last day of month",
      .oracle_errno          = 1847,
      .oracle_str_error      = "ORA-01847: day of month must be between 1 and last day of month",
      .oracle_str_user_error = "ORA-01847: day of month must be between 1 and last day of month"
};
static const _error _error_OB_ERR_NOT_SELECTED_EXPR = {
      .error_name            = "OB_ERR_NOT_SELECTED_EXPR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not a SELECTed expression",
      .str_user_error        = "not a SELECTed expression",
      .oracle_errno          = 1791,
      .oracle_str_error      = "ORA-01791: not a SELECTed expression",
      .oracle_str_user_error = "ORA-01791: not a SELECTed expression"
};
static const _error _error_OB_ERR_UK_PK_DUPLICATE = {
      .error_name            = "OB_ERR_UK_PK_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "such unique or primary key already exists in the table",
      .str_user_error        = "such unique or primary key already exists in the table",
      .oracle_errno          = 2261,
      .oracle_str_error      = "ORA-02261: such unique or primary key already exists in the table",
      .oracle_str_user_error = "ORA-02261: such unique or primary key already exists in the table"
};
static const _error _error_OB_ERR_COLUMN_LIST_ALREADY_INDEXED = {
      .error_name            = "OB_ERR_COLUMN_LIST_ALREADY_INDEXED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "such column list already indexed",
      .str_user_error        = "such column list already indexed",
      .oracle_errno          = 1408,
      .oracle_str_error      = "ORA-01408: such column list already indexed",
      .oracle_str_user_error = "ORA-01408: such column list already indexed"
};
static const _error _error_OB_ERR_BUSHY_TREE_NOT_SUPPORTED = {
      .error_name            = "OB_ERR_BUSHY_TREE_NOT_SUPPORTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "PX does not support processing a bushy tree",
      .str_user_error        = "PX does not support processing a bushy tree",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5673, PX does not support processing a bushy tree",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5673, PX does not support processing a bushy tree"
};
static const _error _error_OB_ERR_ARGUMENT_OUT_OF_RANGE = {
      .error_name            = "OB_ERR_ARGUMENT_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "argument is out of range",
      .str_user_error        = "argument '%ld' is out of range",
      .oracle_errno          = 1428,
      .oracle_str_error      = "ORA-01428: argument is out of range",
      .oracle_str_user_error = "ORA-01428: argument '%ld' is out of range"
};
static const _error _error_OB_ERR_ORDER_BY_ITEM_NOT_IN_SELECT_LIST = {
      .error_name            = "OB_ERR_ORDER_BY_ITEM_NOT_IN_SELECT_LIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ORDER BY item must be the number of a SELECT-list expression",
      .str_user_error        = "ORDER BY item must be the number of a SELECT-list expression",
      .oracle_errno          = 1785,
      .oracle_str_error      = "ORA-01785: ORDER BY item must be the number of a SELECT-list expression",
      .oracle_str_user_error = "ORA-01785: ORDER BY item must be the number of a SELECT-list expression"
};
static const _error _error_OB_ERR_INTERVAL_INVALID = {
      .error_name            = "OB_ERR_INTERVAL_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the interval is invalid",
      .str_user_error        = "the interval is invalid",
      .oracle_errno          = 1867,
      .oracle_str_error      = "ORA-01867: the interval is invalid",
      .oracle_str_user_error = "ORA-01867: the interval is invalid"
};
static const _error _error_OB_ERR_NUMERIC_OR_VALUE_ERROR = {
      .error_name            = "OB_ERR_NUMERIC_OR_VALUE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "PL/SQL: numeric or value error",
      .str_user_error        = "PL/SQL: numeric or value error: %.*s",
      .oracle_errno          = 6502,
      .oracle_str_error      = "ORA-06502: PL/SQL: numeric or value error",
      .oracle_str_user_error = "ORA-06502: PL/SQL: numeric or value error: %.*s"
};
static const _error _error_OB_ERR_CONSTRAINT_NAME_DUPLICATE = {
      .error_name            = "OB_ERR_CONSTRAINT_NAME_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CHECK_CONSTRAINT_DUP_NAME,
      .sqlstate              = "HY000",
      .str_error             = "Duplicate check constraint name",
      .str_user_error        = "Duplicate check constraint name \'%.*s\'.",
      .oracle_errno          = 2264,
      .oracle_str_error      = "ORA-02264: name already used by an existing constraint",
      .oracle_str_user_error = "ORA-02264: name \'%.*s\' already used by an existing constraint"
};
static const _error _error_OB_ERR_ONLY_HAVE_INVISIBLE_COL_IN_TABLE = {
      .error_name            = "OB_ERR_ONLY_HAVE_INVISIBLE_COL_IN_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TABLE_MUST_HAVE_A_VISIBLE_COLUMN,
      .sqlstate              = "HY000",
      .str_error             = "table must have at least one column that is not invisible",
      .str_user_error        = "table must have at least one column that is not invisible",
      .oracle_errno          = 54039,
      .oracle_str_error      = "ORA-54039: table must have at least one column that is not invisible",
      .oracle_str_user_error = "ORA-54039: table must have at least one column that is not invisible"
};
static const _error _error_OB_ERR_INVISIBLE_COL_ON_UNSUPPORTED_TABLE_TYPE = {
      .error_name            = "OB_ERR_INVISIBLE_COL_ON_UNSUPPORTED_TABLE_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invisible column is not supported on this type of table.",
      .str_user_error        = "Invisible column is not supported on this type of table.",
      .oracle_errno          = 54042,
      .oracle_str_error      = "ORA-54042: Invisible column is not supported on this type of table.",
      .oracle_str_user_error = "ORA-54042: Invisible column is not supported on this type of table."
};
static const _error _error_OB_ERR_MODIFY_COL_VISIBILITY_COMBINED_WITH_OTHER_OPTION = {
      .error_name            = "OB_ERR_MODIFY_COL_VISIBILITY_COMBINED_WITH_OTHER_OPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Column visibility modifications cannot be combined with any other modified column DDL option.",
      .str_user_error        = "Column visibility modifications cannot be combined with any other modified column DDL option.",
      .oracle_errno          = 54046,
      .oracle_str_error      = "ORA-54046: Column visibility modifications cannot be combined with any other modified column DDL option.",
      .oracle_str_user_error = "ORA-54046: Column visibility modifications cannot be combined with any other modified column DDL option."
};
static const _error _error_OB_ERR_MODIFY_COL_VISIBILITY_BY_SYS_USER = {
      .error_name            = "OB_ERR_MODIFY_COL_VISIBILITY_BY_SYS_USER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The visibility of a column from a table owned by a SYS user cannot be changed.",
      .str_user_error        = "The visibility of a column from a table owned by a SYS user cannot be changed.",
      .oracle_errno          = 54053,
      .oracle_str_error      = "ORA-54053: The visibility of a column from a table owned by a SYS user cannot be changed.",
      .oracle_str_user_error = "ORA-54053: The visibility of a column from a table owned by a SYS user cannot be changed."
};
static const _error _error_OB_ERR_TOO_MANY_ARGS_FOR_FUN = {
      .error_name            = "OB_ERR_TOO_MANY_ARGS_FOR_FUN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "too many arguments for function",
      .str_user_error        = "too many arguments for function",
      .oracle_errno          = 939,
      .oracle_str_error      = "ORA-00939: too many arguments for function",
      .oracle_str_user_error = "ORA-00939: too many arguments for function"
};
static const _error _error_OB_PX_SQL_NEED_RETRY = {
      .error_name            = "OB_PX_SQL_NEED_RETRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "PX sql need retry",
      .str_user_error        = "PX sql need retry",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5684, PX sql need retry",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5684, PX sql need retry"
};
static const _error _error_OB_TENANT_HAS_BEEN_DROPPED = {
      .error_name            = "OB_TENANT_HAS_BEEN_DROPPED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "tenant has been dropped",
      .str_user_error        = "Tenant '%.*s' has been dropped",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5685, tenant has been dropped",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5685, Tenant '%.*s' has been dropped"
};
static const _error _error_OB_ERR_EXTRACT_FIELD_INVALID = {
      .error_name            = "OB_ERR_EXTRACT_FIELD_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid extract field for extract source",
      .str_user_error        = "invalid extract field for extract source",
      .oracle_errno          = 30076,
      .oracle_str_error      = "ORA-30076: invalid extract field for extract source",
      .oracle_str_user_error = "ORA-30076: invalid extract field for extract source"
};
static const _error _error_OB_ERR_PACKAGE_COMPILE_ERROR = {
      .error_name            = "OB_ERR_PACKAGE_COMPILE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "package compile error",
      .str_user_error        = "%s \'%.*s.%.*s\' compile error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5687, package compile error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5687, %s \'%.*s.%.*s\' compile error"
};
static const _error _error_OB_ERR_SP_EMPTY_BLOCK = {
      .error_name            = "OB_ERR_SP_EMPTY_BLOCK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Empty block prohibited in Oracle",
      .str_user_error        = "Empty block prohibited in Oracle",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5688, Empty block prohibited in Oracle",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5688, Empty block prohibited in Oracle"
};
static const _error _error_OB_ARRAY_BINDING_ROLLBACK = {
      .error_name            = "OB_ARRAY_BINDING_ROLLBACK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "array binding need rollback",
      .str_user_error        = "array binding need rollback",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5689, array binding need rollback",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5689, array binding need rollback"
};
static const _error _error_OB_ERR_INVALID_SUBQUERY_USE = {
      .error_name            = "OB_ERR_INVALID_SUBQUERY_USE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "subquery not allowed here",
      .str_user_error        = "subquery not allowed here",
      .oracle_errno          = 2251,
      .oracle_str_error      = "ORA-02251: subquery not allowed here",
      .oracle_str_user_error = "ORA-02251: subquery not allowed here"
};
static const _error _error_OB_ERR_DATE_OR_SYS_VAR_CANNOT_IN_CHECK_CST = {
      .error_name            = "OB_ERR_DATE_OR_SYS_VAR_CANNOT_IN_CHECK_CST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "date or system variable wrongly specified in CHECK constraint",
      .str_user_error        = "date or system variable wrongly specified in CHECK constraint",
      .oracle_errno          = 2436,
      .oracle_str_error      = "ORA-02436: date or system variable wrongly specified in CHECK constraint",
      .oracle_str_user_error = "ORA-02436: date or system variable wrongly specified in CHECK constraint"
};
static const _error _error_OB_ERR_NONEXISTENT_CONSTRAINT = {
      .error_name            = "OB_ERR_NONEXISTENT_CONSTRAINT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CONSTRAINT_NOT_FOUND,
      .sqlstate              = "HY000",
      .str_error             = "Constraint does not exist.",
      .str_user_error        = "Constraint \'%.*s\' does not exist.",
      .oracle_errno          = 2443,
      .oracle_str_error      = "ORA-02443: Cannot drop constraint  - nonexistent constraint",
      .oracle_str_user_error = "ORA-02443: Cannot drop constraint \'%.*s\' - nonexistent constraint"
};
static const _error _error_OB_ERR_CHECK_CONSTRAINT_VIOLATED = {
      .error_name            = "OB_ERR_CHECK_CONSTRAINT_VIOLATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CHECK_CONSTRAINT_VIOLATED,
      .sqlstate              = "HY000",
      .str_error             = "check constraint violated",
      .str_user_error        = "check constraint violated",
      .oracle_errno          = 2290,
      .oracle_str_error      = "ORA-02290: check constraint violated",
      .oracle_str_user_error = "ORA-02290: check constraint violated"
};
static const _error _error_OB_ERR_GROUP_FUNC_NOT_ALLOWED = {
      .error_name            = "OB_ERR_GROUP_FUNC_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "group function is not allowed here",
      .str_user_error        = "group function is not allowed here",
      .oracle_errno          = 934,
      .oracle_str_error      = "ORA-00934: group function is not allowed here",
      .oracle_str_user_error = "ORA-00934: group function is not allowed here"
};
static const _error _error_OB_ERR_POLICY_STRING_NOT_FOUND = {
      .error_name            = "OB_ERR_POLICY_STRING_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "policy string not found",
      .str_user_error        = "policy string not found",
      .oracle_errno          = 12416,
      .oracle_str_error      = "ORA-12416: policy string not found",
      .oracle_str_user_error = "ORA-12416: policy string not found"
};
static const _error _error_OB_ERR_INVALID_LABEL_STRING = {
      .error_name            = "OB_ERR_INVALID_LABEL_STRING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid label string",
      .str_user_error        = "invalid label string",
      .oracle_errno          = 12401,
      .oracle_str_error      = "ORA-12401: invalid label string",
      .oracle_str_user_error = "ORA-12401: invalid label string"
};
static const _error _error_OB_ERR_UNDEFINED_COMPARTMENT_STRING_FOR_POLICY_STRING = {
      .error_name            = "OB_ERR_UNDEFINED_COMPARTMENT_STRING_FOR_POLICY_STRING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "undefined compartment string for policy string",
      .str_user_error        = "undefined compartment string for policy string",
      .oracle_errno          = 12462,
      .oracle_str_error      = "ORA-12462: undefined compartment string for policy string",
      .oracle_str_user_error = "ORA-12462: undefined compartment string for policy string"
};
static const _error _error_OB_ERR_UNDEFINED_LEVEL_STRING_FOR_POLICY_STRING = {
      .error_name            = "OB_ERR_UNDEFINED_LEVEL_STRING_FOR_POLICY_STRING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "undefined level string for policy string",
      .str_user_error        = "undefined level string for policy string",
      .oracle_errno          = 12461,
      .oracle_str_error      = "ORA-12461: undefined level string for policy string",
      .oracle_str_user_error = "ORA-12461: undefined level string for policy string"
};
static const _error _error_OB_ERR_UNDEFINED_GROUP_STRING_FOR_POLICY_STRING = {
      .error_name            = "OB_ERR_UNDEFINED_GROUP_STRING_FOR_POLICY_STRING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "undefined group string for policy string",
      .str_user_error        = "undefined group string for policy string",
      .oracle_errno          = 12463,
      .oracle_str_error      = "ORA-12463: undefined group string for policy string",
      .oracle_str_user_error = "ORA-12463: undefined group string for policy string"
};
static const _error _error_OB_ERR_LBAC_ERROR = {
      .error_name            = "OB_ERR_LBAC_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "LBAC error",
      .str_user_error        = "LBAC error: %s",
      .oracle_errno          = 12432,
      .oracle_str_error      = "ORA-12432: LBAC error",
      .oracle_str_user_error = "ORA-12432: LBAC error: %s"
};
static const _error _error_OB_ERR_POLICY_ROLE_ALREADY_EXISTS_FOR_POLICY_STRING = {
      .error_name            = "OB_ERR_POLICY_ROLE_ALREADY_EXISTS_FOR_POLICY_STRING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "policy role already exists for policy string",
      .str_user_error        = "policy role already exists for policy string",
      .oracle_errno          = 12447,
      .oracle_str_error      = "ORA-12447: policy role already exists for policy string",
      .oracle_str_user_error = "ORA-12447: policy role already exists for policy string"
};
static const _error _error_OB_ERR_NULL_OR_INVALID_USER_LABEL = {
      .error_name            = "OB_ERR_NULL_OR_INVALID_USER_LABEL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "NULL or invalid user label",
      .str_user_error        = "NULL or invalid user label: %s",
      .oracle_errno          = 12470,
      .oracle_str_error      = "ORA-12470: NULL or invalid user label",
      .oracle_str_user_error = "ORA-12470: NULL or invalid user label: %s"
};
static const _error _error_OB_ERR_ADD_INDEX = {
      .error_name            = "OB_ERR_ADD_INDEX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Add index failed",
      .str_user_error        = "Add index failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5703, Add index failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5703, Add index failed"
};
static const _error _error_OB_ERR_PROFILE_STRING_DOES_NOT_EXIST = {
      .error_name            = "OB_ERR_PROFILE_STRING_DOES_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "profile string does not exist",
      .str_user_error        = "profile %.*s does not exist",
      .oracle_errno          = 2380,
      .oracle_str_error      = "ORA-02380: profile string does not exist",
      .oracle_str_user_error = "ORA-02380: profile %.*s does not exist"
};
static const _error _error_OB_ERR_INVALID_RESOURCE_LIMIT = {
      .error_name            = "OB_ERR_INVALID_RESOURCE_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid resource limit",
      .str_user_error        = "invalid resource limit %s",
      .oracle_errno          = 2377,
      .oracle_str_error      = "ORA-02377: invalid resource limit",
      .oracle_str_user_error = "ORA-02377: invalid resource limit %s"
};
static const _error _error_OB_ERR_PROFILE_STRING_ALREADY_EXISTS = {
      .error_name            = "OB_ERR_PROFILE_STRING_ALREADY_EXISTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "profile string already exists",
      .str_user_error        = "profile %.*s already exists",
      .oracle_errno          = 2379,
      .oracle_str_error      = "ORA-02379: profile string already exists",
      .oracle_str_user_error = "ORA-02379: profile %.*s already exists"
};
static const _error _error_OB_ERR_PROFILE_STRING_HAS_USERS_ASSIGNED = {
      .error_name            = "OB_ERR_PROFILE_STRING_HAS_USERS_ASSIGNED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "profile string has users assigned, cannot drop without CASCADE",
      .str_user_error        = "profile %.*s has users assigned, cannot drop without CASCADE",
      .oracle_errno          = 2382,
      .oracle_str_error      = "ORA-02382: profile string has users assigned, cannot drop without CASCADE",
      .oracle_str_user_error = "ORA-02382: profile %.*s has users assigned, cannot drop without CASCADE"
};
static const _error _error_OB_ERR_THE_LEADING_PRECISION_OF_THE_INTERVAL_IS_TOO_SMALL = {
      .error_name            = "OB_ERR_THE_LEADING_PRECISION_OF_THE_INTERVAL_IS_TOO_SMALL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the leading precision of the interval is too small",
      .str_user_error        = "the leading precision of the interval is too small",
      .oracle_errno          = 1873,
      .oracle_str_error      = "ORA-01873: the leading precision of the interval is too small",
      .oracle_str_user_error = "ORA-01873: the leading precision of the interval is too small"
};
static const _error _error_OB_ERR_INVALID_TIME_ZONE_HOUR = {
      .error_name            = "OB_ERR_INVALID_TIME_ZONE_HOUR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "time zone hour must be between -12 and 14",
      .str_user_error        = "time zone hour must be between -12 and 14",
      .oracle_errno          = 1874,
      .oracle_str_error      = "ORA-01874: time zone hour must be between -15 and 15",
      .oracle_str_user_error = "ORA-01874: time zone hour must be between -15 and 15"
};
static const _error _error_OB_ERR_INVALID_TIME_ZONE_MINUTE = {
      .error_name            = "OB_ERR_INVALID_TIME_ZONE_MINUTE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "time zone minute must be between -59 and 59",
      .str_user_error        = "time zone minute must be between -59 and 59",
      .oracle_errno          = 1875,
      .oracle_str_error      = "ORA-01875: time zone minute must be between -59 and 59",
      .oracle_str_user_error = "ORA-01875: time zone minute must be between -59 and 59"
};
static const _error _error_OB_ERR_NOT_A_VALID_TIME_ZONE = {
      .error_name            = "OB_ERR_NOT_A_VALID_TIME_ZONE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not a valid time zone",
      .str_user_error        = "not a valid time zone",
      .oracle_errno          = 1857,
      .oracle_str_error      = "ORA-01857: not a valid time zone",
      .oracle_str_user_error = "ORA-01857: not a valid time zone"
};
static const _error _error_OB_ERR_DATE_FORMAT_IS_TOO_LONG_FOR_INTERNAL_BUFFER = {
      .error_name            = "OB_ERR_DATE_FORMAT_IS_TOO_LONG_FOR_INTERNAL_BUFFER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "date format is too long for internal buffer",
      .str_user_error        = "date format is too long for internal buffer",
      .oracle_errno          = 1801,
      .oracle_str_error      = "ORA-01801: date format is too long for internal buffer",
      .oracle_str_user_error = "ORA-01801: date format is too long for internal buffer"
};
static const _error _error_OB_ERR_ADD_CHECK_CONSTRAINT_VIOLATED = {
      .error_name            = "OB_ERR_ADD_CHECK_CONSTRAINT_VIOLATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot validate - check constraint violated",
      .str_user_error        = "cannot validate (%.*s.%.*s) - check constraint violated",
      .oracle_errno          = 2293,
      .oracle_str_error      = "ORA-02293: cannot validate - check constraint violated",
      .oracle_str_user_error = "ORA-02293: cannot validate (%.*s.%.*s) - check constraint violated"
};
static const _error _error_OB_ERR_ILLEGAL_VIEW_UPDATE = {
      .error_name            = "OB_ERR_ILLEGAL_VIEW_UPDATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "data manipulation operation not legal on this view",
      .str_user_error        = "data manipulation operation not legal on this view",
      .oracle_errno          = 1732,
      .oracle_str_error      = "ORA-01732: data manipulation operation not legal on this view",
      .oracle_str_user_error = "ORA-01732: data manipulation operation not legal on this view"
};
static const _error _error_OB_ERR_VIRTUAL_COL_NOT_ALLOWED = {
      .error_name            = "OB_ERR_VIRTUAL_COL_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "virtual column not allowed here",
      .str_user_error        = "virtual column not allowed here",
      .oracle_errno          = 1733,
      .oracle_str_error      = "ORA-01733: virtual column not allowed here",
      .oracle_str_user_error = "ORA-01733: virtual column not allowed here"
};
static const _error _error_OB_ERR_O_VIEW_MULTIUPDATE = {
      .error_name            = "OB_ERR_O_VIEW_MULTIUPDATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot modify more than one base table through a join view",
      .str_user_error        = "cannot modify more than one base table through a join view",
      .oracle_errno          = 1776,
      .oracle_str_error      = "ORA-01776: cannot modify more than one base table through a join view",
      .oracle_str_user_error = "ORA-01776: cannot modify more than one base table through a join view"
};
static const _error _error_OB_ERR_NON_INSERTABLE_TABLE = {
      .error_name            = "OB_ERR_NON_INSERTABLE_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NON_INSERTABLE_TABLE,
      .sqlstate              = "HY000",
      .str_error             = "The target table is not insertable",
      .str_user_error        = "The target table %.*s of the INSERT is not insertable-into",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5717, The target table is not insertable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5717, The target table %.*s of the INSERT is not insertable-into"
};
static const _error _error_OB_ERR_VIEW_MULTIUPDATE = {
      .error_name            = "OB_ERR_VIEW_MULTIUPDATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_VIEW_MULTIUPDATE,
      .sqlstate              = "HY000",
      .str_error             = "Can not modify more than one base table through a join view",
      .str_user_error        = "Can not modify more than one base table through a join view '%.*s.%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5718, Can not modify more than one base table through a join view",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5718, Can not modify more than one base table through a join view '%.*s.%.*s'"
};
static const _error _error_OB_ERR_NONUPDATEABLE_COLUMN = {
      .error_name            = "OB_ERR_NONUPDATEABLE_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NONUPDATEABLE_COLUMN,
      .sqlstate              = "HY000",
      .str_error             = "Column is not updatable",
      .str_user_error        = "Column '%.*s' is not updatable",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5719, Column is not updatable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5719, Column '%.*s' is not updatable"
};
static const _error _error_OB_ERR_VIEW_DELETE_MERGE_VIEW = {
      .error_name            = "OB_ERR_VIEW_DELETE_MERGE_VIEW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_VIEW_DELETE_MERGE_VIEW,
      .sqlstate              = "HY000",
      .str_error             = "Can not delete from join view",
      .str_user_error        = "Can not delete from join view '%.*s.%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5720, Can not delete from join view",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5720, Can not delete from join view '%.*s.%.*s'"
};
static const _error _error_OB_ERR_O_DELETE_VIEW_NON_KEY_PRESERVED = {
      .error_name            = "OB_ERR_O_DELETE_VIEW_NON_KEY_PRESERVED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot delete from view without exactly one key-preserved table",
      .str_user_error        = "cannot delete from view without exactly one key-preserved table",
      .oracle_errno          = 1752,
      .oracle_str_error      = "ORA-01752: cannot delete from view without exactly one key-preserved table",
      .oracle_str_user_error = "ORA-01752: cannot delete from view without exactly one key-preserved table"
};
static const _error _error_OB_ERR_O_UPDATE_VIEW_NON_KEY_PRESERVED = {
      .error_name            = "OB_ERR_O_UPDATE_VIEW_NON_KEY_PRESERVED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot modify a column which maps to a non key-preserved table",
      .str_user_error        = "cannot modify a column which maps to a non key-preserved table",
      .oracle_errno          = 1779,
      .oracle_str_error      = "ORA-01779: cannot modify a column which maps to a non key-preserved table",
      .oracle_str_user_error = "ORA-01779: cannot modify a column which maps to a non key-preserved table"
};
static const _error _error_OB_ERR_MODIFY_READ_ONLY_VIEW = {
      .error_name            = "OB_ERR_MODIFY_READ_ONLY_VIEW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot perform a DML operation on a read-only view",
      .str_user_error        = "cannot perform a DML operation on a read-only view",
      .oracle_errno          = 42399,
      .oracle_str_error      = "ORA-42399: cannot perform a DML operation on a read-only view",
      .oracle_str_user_error = "ORA-42399: cannot perform a DML operation on a read-only view"
};
static const _error _error_OB_ERR_INVALID_INITRANS_VALUE = {
      .error_name            = "OB_ERR_INVALID_INITRANS_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid INITRANS option value",
      .str_user_error        = "invalid INITRANS option value",
      .oracle_errno          = 2207,
      .oracle_str_error      = "ORA-02207: invalid INITRANS option value",
      .oracle_str_user_error = "ORA-02207: invalid INITRANS option value"
};
static const _error _error_OB_ERR_INVALID_MAXTRANS_VALUE = {
      .error_name            = "OB_ERR_INVALID_MAXTRANS_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid MAXTRANS option value",
      .str_user_error        = "invalid MAXTRANS option value",
      .oracle_errno          = 2209,
      .oracle_str_error      = "ORA-02209: invalid MAXTRANS option value",
      .oracle_str_user_error = "ORA-02209: invalid MAXTRANS option value"
};
static const _error _error_OB_ERR_INVALID_PCTFREE_OR_PCTUSED_VALUE = {
      .error_name            = "OB_ERR_INVALID_PCTFREE_OR_PCTUSED_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid value for PCTFREE or PCTUSED",
      .str_user_error        = "invalid value for PCTFREE or PCTUSED",
      .oracle_errno          = 2211,
      .oracle_str_error      = "ORA-02211: invalid value for PCTFREE or PCTUSED",
      .oracle_str_user_error = "ORA-02211: invalid value for PCTFREE or PCTUSED"
};
static const _error _error_OB_ERR_PROXY_REROUTE = {
      .error_name            = "OB_ERR_PROXY_REROUTE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "SQL request should be rerouted",
      .str_user_error        = "SQL request should be rerouted",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5727, SQL request should be rerouted",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5727, SQL request should be rerouted"
};
static const _error _error_OB_ERR_ILLEGAL_ARGUMENT_FOR_FUNCTION = {
      .error_name            = "OB_ERR_ILLEGAL_ARGUMENT_FOR_FUNCTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "illegal argument for function",
      .str_user_error        = "illegal argument for function",
      .oracle_errno          = 1760,
      .oracle_str_error      = "ORA-01760: illegal argument for function",
      .oracle_str_user_error = "ORA-01760: illegal argument for function"
};
static const _error _error_OB_ERR_OPERATOR_CANNOT_BE_USED_WITH_LIST = {
      .error_name            = "OB_ERR_OPERATOR_CANNOT_BE_USED_WITH_LIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "this operator cannot be used with lists",
      .str_user_error        = "this operator cannot be used with lists",
      .oracle_errno          = 1796,
      .oracle_str_error      = "ORA-01796: this operator cannot be used with lists",
      .oracle_str_user_error = "ORA-01796: this operator cannot be used with lists"
};
static const _error _error_OB_ERR_INVALID_SAMPLING_RANGE = {
      .error_name            = "OB_ERR_INVALID_SAMPLING_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "SAMPLE percentage must be in the range [0.000001,100)",
      .str_user_error        = "SAMPLE percentage must be in the range [0.000001,100)",
      .oracle_errno          = 30562,
      .oracle_str_error      = "ORA-30562: SAMPLE percentage must be in the range [0.000001,100)",
      .oracle_str_user_error = "ORA-30562: SAMPLE percentage must be in the range [0.000001,100)"
};
static const _error _error_OB_ERR_SPECIFY_DATABASE_NOT_ALLOWED = {
      .error_name            = "OB_ERR_SPECIFY_DATABASE_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "specifying owner's name of the table is not allowed",
      .str_user_error        = "specifying owner's name of the table is not allowed",
      .oracle_errno          = 1765,
      .oracle_str_error      = "ORA-01765: specifying owner's name of the table is not allowed",
      .oracle_str_user_error = "ORA-01765: specifying owner's name of the table is not allowed"
};
static const _error _error_OB_ERR_STMT_TRIGGER_WITH_WHEN_CLAUSE = {
      .error_name            = "OB_ERR_STMT_TRIGGER_WITH_WHEN_CLAUSE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "stmt trigger with when clause",
      .str_user_error        = "stmt trigger with when clause",
      .oracle_errno          = 4077,
      .oracle_str_error      = "ORA-04077: stmt trigger with when clause",
      .oracle_str_user_error = "ORA-04077: stmt trigger with when clause"
};
static const _error _error_OB_ERR_TRIGGER_NOT_EXIST = {
      .error_name            = "OB_ERR_TRIGGER_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRG_DOES_NOT_EXIST,
      .sqlstate              = "HY000",
      .str_error             = "Trigger does not exist",
      .str_user_error        = "Trigger does not exist",
      .oracle_errno          = 4080,
      .oracle_str_error      = "ORA-04080: trigger not exist",
      .oracle_str_user_error = "ORA-04080: trigger '%.*s' does not exist"
};
static const _error _error_OB_ERR_TRIGGER_ALREADY_EXIST = {
      .error_name            = "OB_ERR_TRIGGER_ALREADY_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "trigger already exist",
      .str_user_error        = "trigger '%.*s' already exist",
      .oracle_errno          = 4081,
      .oracle_str_error      = "ORA-04081: trigger already exist",
      .oracle_str_user_error = "ORA-04081: trigger '%.*s' already exist"
};
static const _error _error_OB_ERR_TRIGGER_EXIST_ON_OTHER_TABLE = {
      .error_name            = "OB_ERR_TRIGGER_EXIST_ON_OTHER_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "trigger already exists on another table, cannot replace it",
      .str_user_error        = "trigger '%.*s' already exists on another table, cannot replace it",
      .oracle_errno          = 4095,
      .oracle_str_error      = "ORA-04095: trigger already exists on another table, cannot replace it",
      .oracle_str_user_error = "ORA-04095: trigger '%.*s' already exists on another table, cannot replace it"
};
static const _error _error_OB_ERR_SIGNALED_IN_PARALLEL_QUERY_SERVER = {
      .error_name            = "OB_ERR_SIGNALED_IN_PARALLEL_QUERY_SERVER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "error signaled in parallel query server",
      .str_user_error        = "error signaled in parallel query server",
      .oracle_errno          = 12801,
      .oracle_str_error      = "ORA-12801: error signaled in parallel query server",
      .oracle_str_user_error = "ORA-12801: error signaled in parallel query server"
};
static const _error _error_OB_ERR_CTE_ILLEGAL_QUERY_NAME = {
      .error_name            = "OB_ERR_CTE_ILLEGAL_QUERY_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "illegal reference of a query name in WITH clause",
      .str_user_error        = "illegal reference of a query name in WITH clause",
      .oracle_errno          = 32031,
      .oracle_str_error      = "ORA-32031: illegal reference of a query name in WITH clause",
      .oracle_str_user_error = "ORA-32031: illegal reference of a query name in WITH clause"
};
static const _error _error_OB_ERR_CTE_UNSUPPORTED_COLUMN_ALIASING = {
      .error_name            = "OB_ERR_CTE_UNSUPPORTED_COLUMN_ALIASING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unsupported column aliasing",
      .str_user_error        = "unsupported column aliasing",
      .oracle_errno          = 32033,
      .oracle_str_error      = "ORA-32033: unsupported column aliasing",
      .oracle_str_user_error = "ORA-32033: unsupported column aliasing"
};
static const _error _error_OB_ERR_UNSUPPORTED_USE_OF_CTE = {
      .error_name            = "OB_ERR_UNSUPPORTED_USE_OF_CTE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unsupported use of WITH clause",
      .str_user_error        = "unsupported use of WITH clause",
      .oracle_errno          = 32034,
      .oracle_str_error      = "ORA-32034: unsupported use of WITH clause",
      .oracle_str_user_error = "ORA-32034: unsupported use of WITH clause"
};
static const _error _error_OB_ERR_CTE_COLUMN_NUMBER_NOT_MATCH = {
      .error_name            = "OB_ERR_CTE_COLUMN_NUMBER_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_VIEW_WRONG_LIST,
      .sqlstate              = "HY000",
      .str_error             = "View's SELECT and view's field list have different column counts",
      .str_user_error        = "View's SELECT and view's field list have different column counts",
      .oracle_errno          = 32038,
      .oracle_str_error      = "ORA-32038: number of WITH clause column names does not match number of elements in select list",
      .oracle_str_user_error = "ORA-32038: number of WITH clause column names does not match number of elements in select list"
};
static const _error _error_OB_ERR_NEED_COLUMN_ALIAS_LIST_IN_RECURSIVE_CTE = {
      .error_name            = "OB_ERR_NEED_COLUMN_ALIAS_LIST_IN_RECURSIVE_CTE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "recursive WITH clause must have column alias list",
      .str_user_error        = "recursive WITH clause must have column alias list",
      .oracle_errno          = 32039,
      .oracle_str_error      = "ORA-32039: recursive WITH clause must have column alias list",
      .oracle_str_user_error = "ORA-32039: recursive WITH clause must have column alias list"
};
static const _error _error_OB_ERR_NEED_UNION_ALL_IN_RECURSIVE_CTE = {
      .error_name            = "OB_ERR_NEED_UNION_ALL_IN_RECURSIVE_CTE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CTE_RECURSIVE_REQUIRES_UNION,
      .sqlstate              = "HY000",
      .str_error             = "Recursive Common Table Expression should contain a UNION ALL",
      .str_user_error        = "Recursive Common Table Expression should contain a UNION ALL",
      .oracle_errno          = 32040,
      .oracle_str_error      = "ORA-32040: recursive WITH clause must use a UNION ALL operation",
      .oracle_str_user_error = "ORA-32040: recursive WITH clause must use a UNION ALL operation"
};
static const _error _error_OB_ERR_NEED_ONLY_TWO_BRANCH_IN_RECURSIVE_CTE = {
      .error_name            = "OB_ERR_NEED_ONLY_TWO_BRANCH_IN_RECURSIVE_CTE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "More than one recursive query blocks of Common Table Expression not supported",
      .str_user_error        = "More than one recursive query blocks of Common Table Expression not supported",
      .oracle_errno          = 32041,
      .oracle_str_error      = "ORA-32041: UNION ALL operation in recursive WITH clause must have only two branches",
      .oracle_str_user_error = "ORA-32041: UNION ALL operation in recursive WITH clause must have only two branches"
};
static const _error _error_OB_ERR_NEED_REFERENCE_ITSELF_DIRECTLY_IN_RECURSIVE_CTE = {
      .error_name            = "OB_ERR_NEED_REFERENCE_ITSELF_DIRECTLY_IN_RECURSIVE_CTE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CTE_RECURSIVE_REQUIRES_SINGLE_REFERENCE,
      .sqlstate              = "HY000",
      .str_error             = "In recursive query block of Recursive Common Table Expression, the recursive table must be referenced only once, and not in any subquery",
      .str_user_error        = "In recursive query block of Recursive Common Table Expression, the recursive table must be referenced only once, and not in any subquery",
      .oracle_errno          = 32042,
      .oracle_str_error      = "ORA-32042: recursive WITH clause must reference itself directly in one of the UNION ALL branches",
      .oracle_str_user_error = "ORA-32042: recursive WITH clause must reference itself directly in one of the UNION ALL branches"
};
static const _error _error_OB_ERR_NEED_INIT_BRANCH_IN_RECURSIVE_CTE = {
      .error_name            = "OB_ERR_NEED_INIT_BRANCH_IN_RECURSIVE_CTE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "recursive WITH clause needs an initialization branch",
      .str_user_error        = "recursive WITH clause needs an initialization branch",
      .oracle_errno          = 32043,
      .oracle_str_error      = "ORA-32043: recursive WITH clause needs an initialization branch",
      .oracle_str_user_error = "ORA-32043: recursive WITH clause needs an initialization branch"
};
static const _error _error_OB_ERR_CYCLE_FOUND_IN_RECURSIVE_CTE = {
      .error_name            = "OB_ERR_CYCLE_FOUND_IN_RECURSIVE_CTE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cycle detected while executing recursive WITH query",
      .str_user_error        = "cycle detected while executing recursive WITH query",
      .oracle_errno          = 32044,
      .oracle_str_error      = "ORA-32044: cycle detected while executing recursive WITH query",
      .oracle_str_user_error = "ORA-32044: cycle detected while executing recursive WITH query"
};
static const _error _error_OB_ERR_CTE_REACH_MAX_LEVEL_RECURSION = {
      .error_name            = "OB_ERR_CTE_REACH_MAX_LEVEL_RECURSION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "maximum level of recursion reached while executing recursive WITH query",
      .str_user_error        = "maximum level of recursion reached while executing recursive WITH query",
      .oracle_errno          = 32045,
      .oracle_str_error      = "ORA-32045: maximum level of recursion reached while executing recursive WITH query",
      .oracle_str_user_error = "ORA-32045: maximum level of recursion reached while executing recursive WITH query"
};
static const _error _error_OB_ERR_CTE_ILLEGAL_SEARCH_PSEUDO_NAME = {
      .error_name            = "OB_ERR_CTE_ILLEGAL_SEARCH_PSEUDO_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "sequence column name for SEARCH clause must not be part of the column alias list",
      .str_user_error        = "sequence column name for SEARCH clause must not be part of the column alias list",
      .oracle_errno          = 32046,
      .oracle_str_error      = "ORA-32046: sequence column name for SEARCH clause must not be part of the column alias list",
      .oracle_str_user_error = "ORA-32046: sequence column name for SEARCH clause must not be part of the column alias list"
};
static const _error _error_OB_ERR_CTE_ILLEGAL_CYCLE_NON_CYCLE_VALUE = {
      .error_name            = "OB_ERR_CTE_ILLEGAL_CYCLE_NON_CYCLE_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cycle mark value and non-cycle mark value must be one byte character string values",
      .str_user_error        = "cycle mark value and non-cycle mark value must be one byte character string values",
      .oracle_errno          = 32047,
      .oracle_str_error      = "ORA-32047: cycle mark value and non-cycle mark value must be one byte character string values",
      .oracle_str_user_error = "ORA-32047: cycle mark value and non-cycle mark value must be one byte character string values"
};
static const _error _error_OB_ERR_CTE_ILLEGAL_CYCLE_PSEUDO_NAME = {
      .error_name            = "OB_ERR_CTE_ILLEGAL_CYCLE_PSEUDO_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cycle mark column name for CYCLE clause must not be part of the column alias list",
      .str_user_error        = "cycle mark column name for CYCLE clause must not be part of the column alias list",
      .oracle_errno          = 32048,
      .oracle_str_error      = "ORA-32048: cycle mark column name for CYCLE clause must not be part of the column alias list",
      .oracle_str_user_error = "ORA-32048: cycle mark column name for CYCLE clause must not be part of the column alias list"
};
static const _error _error_OB_ERR_CTE_COLUMN_ALIAS_DUPLICATE = {
      .error_name            = "OB_ERR_CTE_COLUMN_ALIAS_DUPLICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate name found in column alias list for WITH clause",
      .str_user_error        = "duplicate name found in column alias list for WITH clause",
      .oracle_errno          = 32049,
      .oracle_str_error      = "ORA-32049: duplicate name found in column alias list for WITH clause",
      .oracle_str_user_error = "ORA-32049: duplicate name found in column alias list for WITH clause"
};
static const _error _error_OB_ERR_CTE_ILLEGAL_SEARCH_CYCLE_CLAUSE = {
      .error_name            = "OB_ERR_CTE_ILLEGAL_SEARCH_CYCLE_CLAUSE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "SEARCH and CYCLE clauses can only be specified for recursive WITH clause elements",
      .str_user_error        = "SEARCH and CYCLE clauses can only be specified for recursive WITH clause elements",
      .oracle_errno          = 32480,
      .oracle_str_error      = "ORA-32480: SEARCH and CYCLE clauses can only be specified for recursive WITH clause elements",
      .oracle_str_user_error = "ORA-32480: SEARCH and CYCLE clauses can only be specified for recursive WITH clause elements"
};
static const _error _error_OB_ERR_CTE_DUPLICATE_CYCLE_NON_CYCLE_VALUE = {
      .error_name            = "OB_ERR_CTE_DUPLICATE_CYCLE_NON_CYCLE_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cycle value for CYCLE clause must be different from the non-cycle value",
      .str_user_error        = "cycle value for CYCLE clause must be different from the non-cycle value",
      .oracle_errno          = 32481,
      .oracle_str_error      = "ORA-32481: cycle value for CYCLE clause must be different from the non-cycle value",
      .oracle_str_user_error = "ORA-32481: cycle value for CYCLE clause must be different from the non-cycle value"
};
static const _error _error_OB_ERR_CTE_DUPLICATE_SEQ_NAME_CYCLE_COLUMN = {
      .error_name            = "OB_ERR_CTE_DUPLICATE_SEQ_NAME_CYCLE_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "sequence column for SEARCH clause must be different from the cycle mark column for CYCLE clause",
      .str_user_error        = "sequence column for SEARCH clause must be different from the cycle mark column for CYCLE clause",
      .oracle_errno          = 32482,
      .oracle_str_error      = "ORA-32482: sequence column for SEARCH clause must be different from the cycle mark column for CYCLE clause",
      .oracle_str_user_error = "ORA-32482: sequence column for SEARCH clause must be different from the cycle mark column for CYCLE clause"
};
static const _error _error_OB_ERR_CTE_DUPLICATE_NAME_IN_SEARCH_CLAUSE = {
      .error_name            = "OB_ERR_CTE_DUPLICATE_NAME_IN_SEARCH_CLAUSE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate name found in sort specification list for SEARCH clause of WITH clause",
      .str_user_error        = "duplicate name found in sort specification list for SEARCH clause of WITH clause",
      .oracle_errno          = 32483,
      .oracle_str_error      = "ORA-32483: duplicate name found in sort specification list for SEARCH clause of WITH clause",
      .oracle_str_user_error = "ORA-32483: duplicate name found in sort specification list for SEARCH clause of WITH clause"
};
static const _error _error_OB_ERR_CTE_DUPLICATE_NAME_IN_CYCLE_CLAUSE = {
      .error_name            = "OB_ERR_CTE_DUPLICATE_NAME_IN_CYCLE_CLAUSE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate name found in cycle column list for CYCLE clause of WITH clause",
      .str_user_error        = "duplicate name found in cycle column list for CYCLE clause of WITH clause",
      .oracle_errno          = 32484,
      .oracle_str_error      = "ORA-32484: duplicate name found in cycle column list for CYCLE clause of WITH clause",
      .oracle_str_user_error = "ORA-32484: duplicate name found in cycle column list for CYCLE clause of WITH clause"
};
static const _error _error_OB_ERR_CTE_ILLEGAL_COLUMN_IN_CYCLE_CLAUSE = {
      .error_name            = "OB_ERR_CTE_ILLEGAL_COLUMN_IN_CYCLE_CLAUSE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "element in cycle column list of CYCLE clause must appear in the column alias list of the WITH clause element",
      .str_user_error        = "element in cycle column list of CYCLE clause must appear in the column alias list of the WITH clause element",
      .oracle_errno          = 32485,
      .oracle_str_error      = "ORA-32485: element in cycle column list of CYCLE clause must appear in the column alias list of the WITH clause element",
      .oracle_str_user_error = "ORA-32485: element in cycle column list of CYCLE clause must appear in the column alias list of the WITH clause element"
};
static const _error _error_OB_ERR_CTE_ILLEGAL_RECURSIVE_BRANCH = {
      .error_name            = "OB_ERR_CTE_ILLEGAL_RECURSIVE_BRANCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CTE_RECURSIVE_FORBIDS_AGGREGATION,
      .sqlstate              = "HY000",
      .str_error             = "ORDER BY / LIMIT / SELECT DISTINCT / HAVING / WINDOW FUNCTION / GROUP BY in recursive query block of Common Table Expression not supported",
      .str_user_error        = "ORDER BY / LIMIT / SELECT DISTINCT / HAVING / WINDOW FUNCTION / GROUP BY in recursive query block of Common Table Expression not supported",
      .oracle_errno          = 32486,
      .oracle_str_error      = "ORA-32486: unsupported operation in recursive branch of recursive WITH clause",
      .oracle_str_user_error = "ORA-32486: unsupported operation in recursive branch of recursive WITH clause"
};
static const _error _error_OB_ERR_ILLEGAL_JOIN_IN_RECURSIVE_CTE = {
      .error_name            = "OB_ERR_ILLEGAL_JOIN_IN_RECURSIVE_CTE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CTE_RECURSIVE_FORBIDDEN_JOIN_ORDER,
      .sqlstate              = "HY000",
      .str_error             = "In recursive query block of Recursive Common Table Expression, the recursive table must neither be in the right argument of a LEFT JOIN, nor be forced to be non-first with join order hints",
      .str_user_error        = "In recursive query block of Recursive Common Table Expression, the recursive table must neither be in the right argument of a LEFT JOIN, nor be forced to be non-first with join order hints",
      .oracle_errno          = 32487,
      .oracle_str_error      = "ORA-32487: unsupported join in recursive WITH query",
      .oracle_str_user_error = "ORA-32487: unsupported join in recursive WITH query"
};
static const _error _error_OB_ERR_CTE_NEED_COLUMN_ALIAS_LIST = {
      .error_name            = "OB_ERR_CTE_NEED_COLUMN_ALIAS_LIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "WITH clause element did not have a column alias list",
      .str_user_error        = "WITH clause element did not have a column alias list",
      .oracle_errno          = 32488,
      .oracle_str_error      = "ORA-32488: WITH clause element did not have a column alias list",
      .oracle_str_user_error = "ORA-32488: WITH clause element did not have a column alias list"
};
static const _error _error_OB_ERR_CTE_ILLEGAL_COLUMN_IN_SERACH_CALUSE = {
      .error_name            = "OB_ERR_CTE_ILLEGAL_COLUMN_IN_SERACH_CALUSE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "element in sort specification list of SEARCH clause did not appear in the column alias list of the WITH clause element",
      .str_user_error        = "element in sort specification list of SEARCH clause did not appear in the column alias list of the WITH clause element",
      .oracle_errno          = 32489,
      .oracle_str_error      = "ORA-32489: element in sort specification list of SEARCH clause did not appear in the column alias list of the WITH clause element",
      .oracle_str_user_error = "ORA-32489: element in sort specification list of SEARCH clause did not appear in the column alias list of the WITH clause element"
};
static const _error _error_OB_ERR_CTE_RECURSIVE_QUERY_NAME_REFERENCED_MORE_THAN_ONCE = {
      .error_name            = "OB_ERR_CTE_RECURSIVE_QUERY_NAME_REFERENCED_MORE_THAN_ONCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "recursive query name referenced more than once in recursive branch of recursive WITH clause element",
      .str_user_error        = "recursive query name referenced more than once in recursive branch of recursive WITH clause element",
      .oracle_errno          = 32490,
      .oracle_str_error      = "ORA-32490: recursive query name referenced more than once in recursive branch of recursive WITH clause element",
      .oracle_str_user_error = "ORA-32490: recursive query name referenced more than once in recursive branch of recursive WITH clause element"
};
static const _error _error_OB_ERR_CBY_PSEUDO_COLUMN_NOT_ALLOWED = {
      .error_name            = "OB_ERR_CBY_PSEUDO_COLUMN_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Specified pseudo column or operator not allowed here",
      .str_user_error        = "Specified pseudo column or operator not allowed here",
      .oracle_errno          = 976,
      .oracle_str_error      = "ORA-00976: Specified pseudo column or operator not allowed here",
      .oracle_str_user_error = "ORA-00976: Specified pseudo column or operator not allowed here"
};
static const _error _error_OB_ERR_CBY_LOOP = {
      .error_name            = "OB_ERR_CBY_LOOP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "CONNECT BY loop in user data",
      .str_user_error        = "CONNECT BY loop in user data",
      .oracle_errno          = 1436,
      .oracle_str_error      = "ORA-01436: CONNECT BY loop in user data",
      .oracle_str_user_error = "ORA-01436: CONNECT BY loop in user data"
};
static const _error _error_OB_ERR_CBY_JOIN_NOT_ALLOWED = {
      .error_name            = "OB_ERR_CBY_JOIN_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot have join with CONNECT BY",
      .str_user_error        = "cannot have join with CONNECT BY",
      .oracle_errno          = 1437,
      .oracle_str_error      = "ORA-01437: cannot have join with CONNECT BY",
      .oracle_str_user_error = "ORA-01437: cannot have join with CONNECT BY"
};
static const _error _error_OB_ERR_CBY_CONNECT_BY_REQUIRED = {
      .error_name            = "OB_ERR_CBY_CONNECT_BY_REQUIRED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "CONNECT BY clause required in this query block",
      .str_user_error        = "CONNECT BY clause required in this query block",
      .oracle_errno          = 1788,
      .oracle_str_error      = "ORA-01788: CONNECT BY clause required in this query block",
      .oracle_str_user_error = "ORA-01788: CONNECT BY clause required in this query block"
};
static const _error _error_OB_ERR_CBY_CONNECT_BY_PATH_NOT_ALLOWED = {
      .error_name            = "OB_ERR_CBY_CONNECT_BY_PATH_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "SYS_CONNECT_BY_PATH function is not allowed here",
      .str_user_error        = "SYS_CONNECT_BY_PATH function is not allowed here",
      .oracle_errno          = 30002,
      .oracle_str_error      = "ORA-30002: SYS_CONNECT_BY_PATH function is not allowed here",
      .oracle_str_user_error = "ORA-30002: SYS_CONNECT_BY_PATH function is not allowed here"
};
static const _error _error_OB_ERR_CBY_CONNECT_BY_PATH_ILLEGAL_PARAM = {
      .error_name            = "OB_ERR_CBY_CONNECT_BY_PATH_ILLEGAL_PARAM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "illegal parameter in SYS_CONNECT_BY_PATH function",
      .str_user_error        = "illegal parameter in SYS_CONNECT_BY_PATH function",
      .oracle_errno          = 30003,
      .oracle_str_error      = "ORA-30003: illegal parameter in SYS_CONNECT_BY_PATH function",
      .oracle_str_user_error = "ORA-30003: illegal parameter in SYS_CONNECT_BY_PATH function"
};
static const _error _error_OB_ERR_CBY_CONNECT_BY_PATH_INVALID_SEPARATOR = {
      .error_name            = "OB_ERR_CBY_CONNECT_BY_PATH_INVALID_SEPARATOR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "A column value contained the string that the SYS_CONNECT_BY_PATH function was to use to separate column values",
      .str_user_error        = "A column value contained the string that the SYS_CONNECT_BY_PATH function was to use to separate column values",
      .oracle_errno          = 30004,
      .oracle_str_error      = "ORA-30004: A column value contained the string that the SYS_CONNECT_BY_PATH function was to use to separate column values.",
      .oracle_str_user_error = "ORA-30004: A column value contained the string that the SYS_CONNECT_BY_PATH function was to use to separate column values."
};
static const _error _error_OB_ERR_CBY_CONNECT_BY_ROOT_ILLEGAL_USED = {
      .error_name            = "OB_ERR_CBY_CONNECT_BY_ROOT_ILLEGAL_USED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "CONNECT BY ROOT operator is not supported in the START WITH or in the CONNECT BY condition",
      .str_user_error        = "CONNECT BY ROOT operator is not supported in the START WITH or in the CONNECT BY condition",
      .oracle_errno          = 30007,
      .oracle_str_error      = "ORA-30007: CONNECT BY ROOT operator is not supported in the START WITH or in the CONNECT BY condition",
      .oracle_str_user_error = "ORA-30007: CONNECT BY ROOT operator is not supported in the START WITH or in the CONNECT BY condition"
};
static const _error _error_OB_ERR_CBY_OREDER_SIBLINGS_BY_NOT_ALLOWED = {
      .error_name            = "OB_ERR_CBY_OREDER_SIBLINGS_BY_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ORDER SIBLINGS BY clause not allowed here",
      .str_user_error        = "ORDER SIBLINGS BY clause not allowed here",
      .oracle_errno          = 30929,
      .oracle_str_error      = "ORA-30929: ORDER SIBLINGS BY clause not allowed here",
      .oracle_str_user_error = "ORA-30929: ORDER SIBLINGS BY clause not allowed here"
};
static const _error _error_OB_ERR_CBY_NOCYCLE_REQUIRED = {
      .error_name            = "OB_ERR_CBY_NOCYCLE_REQUIRED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "NOCYCLE keyword is required with CONNECT_BY_ISCYCLE pseudo column",
      .str_user_error        = "NOCYCLE keyword is required with CONNECT_BY_ISCYCLE pseudo column",
      .oracle_errno          = 30930,
      .oracle_str_error      = "ORA-30930: NOCYCLE keyword is required with CONNECT_BY_ISCYCLE pseudo column",
      .oracle_str_user_error = "ORA-30930: NOCYCLE keyword is required with CONNECT_BY_ISCYCLE pseudo column"
};
static const _error _error_OB_ERR_NOT_ENOUGH_ARGS_FOR_FUN = {
      .error_name            = "OB_ERR_NOT_ENOUGH_ARGS_FOR_FUN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not enough arguments for function",
      .str_user_error        = "not enough arguments for function",
      .oracle_errno          = 938,
      .oracle_str_error      = "ORA-00938: not enough arguments for function",
      .oracle_str_user_error = "ORA-00938: not enough arguments for function"
};
static const _error _error_OB_ERR_PREPARE_STMT_CHECKSUM = {
      .error_name            = "OB_ERR_PREPARE_STMT_CHECKSUM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Prepare statement checksum error",
      .str_user_error        = "Prepare statement checksum error",
      .oracle_errno          = 603,
      .oracle_str_error      = "ORA-00603: Oracle Server session terminated by fatal error",
      .oracle_str_user_error = "ORA-00603: Oracle Server session terminated by fatal error"
};
static const _error _error_OB_ERR_ENABLE_NONEXISTENT_CONSTRAINT = {
      .error_name            = "OB_ERR_ENABLE_NONEXISTENT_CONSTRAINT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot enable constraint - no such constraint",
      .str_user_error        = "cannot enable constraint (%.*s) - no such constraint",
      .oracle_errno          = 2430,
      .oracle_str_error      = "ORA-02430: cannot enable constraint - no such constraint",
      .oracle_str_user_error = "ORA-02430: cannot enable constraint (%.*s) - no such constraint"
};
static const _error _error_OB_ERR_DISABLE_NONEXISTENT_CONSTRAINT = {
      .error_name            = "OB_ERR_DISABLE_NONEXISTENT_CONSTRAINT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot disable constraint - no such constraint",
      .str_user_error        = "cannot disable constraint (%.*s) - no such constraint",
      .oracle_errno          = 2431,
      .oracle_str_error      = "ORA-02431: cannot disable constraint - no such constraint",
      .oracle_str_user_error = "ORA-02431: cannot disable constraint (%.*s) - no such constraint"
};
static const _error _error_OB_ERR_DOWNGRADE_DOP = {
      .error_name            = "OB_ERR_DOWNGRADE_DOP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "PX DOP downgrade",
      .str_user_error        = "PX DOP downgrade from %ld to %ld",
      .oracle_errno          = 0,
      .oracle_str_error      = "ORA-00000: PX DOP downgrade",
      .oracle_str_user_error = "ORA-00000: PX DOP downgrade from %ld to %ld"
};
static const _error _error_OB_ERR_DOWNGRADE_PARALLEL_MAX_SERVERS = {
      .error_name            = "OB_ERR_DOWNGRADE_PARALLEL_MAX_SERVERS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "parallel_max_servers downgrade due to insufficent cpu resource. deprecated.",
      .str_user_error        = "parallel_max_servers downgrade due to insufficent cpu resource from %ld to %ld. deprecated.",
      .oracle_errno          = 0,
      .oracle_str_error      = "ORA-00000: parallel_max_servers downgrade due to insufficent cpu resource. deprecated.",
      .oracle_str_user_error = "ORA-00000: parallel_max_servers downgrade due to insufficent cpu resource from %ld to %ld. deprecated."
};
static const _error _error_OB_ERR_ORPHANED_CHILD_RECORD_EXISTS = {
      .error_name            = "OB_ERR_ORPHANED_CHILD_RECORD_EXISTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot validate - parent keys not found",
      .str_user_error        = "cannot validate (%.*s.%.*s) - parent keys not found",
      .oracle_errno          = 2298,
      .oracle_str_error      = "ORA-02298: cannot validate - parent keys not found",
      .oracle_str_user_error = "ORA-02298: cannot validate (%.*s.%.*s) - parent keys not found"
};
static const _error _error_OB_ERR_COL_CHECK_CST_REFER_ANOTHER_COL = {
      .error_name            = "OB_ERR_COL_CHECK_CST_REFER_ANOTHER_COL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_COLUMN_CHECK_CONSTRAINT_REFERENCES_OTHER_COLUMN,
      .sqlstate              = "HY000",
      .str_error             = "Column check constraint cannot reference other columns",
      .str_user_error        = "Column check constraint \'%.*s\' references other column.",
      .oracle_errno          = 2438,
      .oracle_str_error      = "ORA-02438: Column check constraint cannot reference other columns",
      .oracle_str_user_error = "ORA-02438: Column check constraint \'%.*s\' cannot reference other columns"
};
static const _error _error_OB_BATCHED_MULTI_STMT_ROLLBACK = {
      .error_name            = "OB_BATCHED_MULTI_STMT_ROLLBACK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "batched multi statement execution needs rollback",
      .str_user_error        = "batched multi statement execution needs rollback",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5787, batched multi statement execution needs rollback",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5787, batched multi statement execution needs rollback"
};
static const _error _error_OB_ERR_FOR_UPDATE_SELECT_VIEW_CANNOT = {
      .error_name            = "OB_ERR_FOR_UPDATE_SELECT_VIEW_CANNOT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot select FOR UPDATE from view with DISTINCT, GROUP BY, etc.",
      .str_user_error        = "cannot select FOR UPDATE from view with DISTINCT, GROUP BY, etc.",
      .oracle_errno          = 2014,
      .oracle_str_error      = "ORA-02014: cannot select FOR UPDATE from view with DISTINCT, GROUP BY, etc.",
      .oracle_str_user_error = "ORA-02014: cannot select FOR UPDATE from view with DISTINCT, GROUP BY, etc."
};
static const _error _error_OB_ERR_POLICY_WITH_CHECK_OPTION_VIOLATION = {
      .error_name            = "OB_ERR_POLICY_WITH_CHECK_OPTION_VIOLATION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "policy with check option violation",
      .str_user_error        = "policy with check option violation",
      .oracle_errno          = 28115,
      .oracle_str_error      = "ORA-28115: policy with check option violation",
      .oracle_str_user_error = "ORA-28115: policy with check option violation"
};
static const _error _error_OB_ERR_POLICY_ALREADY_APPLIED_TO_TABLE = {
      .error_name            = "OB_ERR_POLICY_ALREADY_APPLIED_TO_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "policy already applied to table",
      .str_user_error        = "policy already applied to table",
      .oracle_errno          = 12444,
      .oracle_str_error      = "ORA-12444: policy already applied to table",
      .oracle_str_user_error = "ORA-12444: policy already applied to table"
};
static const _error _error_OB_ERR_MUTATING_TABLE_OPERATION = {
      .error_name            = "OB_ERR_MUTATING_TABLE_OPERATION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG,
      .sqlstate              = "HY000",
      .str_error             = "table is mutating, trigger/function may not see it",
      .str_user_error        = "Can\'t update table \'%s\' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.",
      .oracle_errno          = 4091,
      .oracle_str_error      = "ORA-04091: table is mutating, trigger/function may not see it",
      .oracle_str_user_error = "ORA-04091: table '%.*s'.'%.*s' is mutating, trigger/function may not see it"
};
static const _error _error_OB_ERR_MODIFY_OR_DROP_MULTI_COLUMN_CONSTRAINT = {
      .error_name            = "OB_ERR_MODIFY_OR_DROP_MULTI_COLUMN_CONSTRAINT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "column is referenced in a multi-column constraint",
      .str_user_error        = "column is referenced in a multi-column constraint",
      .oracle_errno          = 12991,
      .oracle_str_error      = "ORA-12991: column is referenced in a multi-column constraint",
      .oracle_str_user_error = "ORA-12991: column is referenced in a multi-column constraint"
};
static const _error _error_OB_ERR_DROP_PARENT_KEY_COLUMN = {
      .error_name            = "OB_ERR_DROP_PARENT_KEY_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot drop parent key column",
      .str_user_error        = "cannot drop parent key column",
      .oracle_errno          = 12992,
      .oracle_str_error      = "ORA-12992: cannot drop parent key column",
      .oracle_str_user_error = "ORA-12992: cannot drop parent key column"
};
static const _error _error_OB_AUTOINC_SERVICE_BUSY = {
      .error_name            = "OB_AUTOINC_SERVICE_BUSY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "auto increment service busy",
      .str_user_error        = "auto increment service busy",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: auto increment service busy",
      .oracle_str_user_error = "ORA-00600: auto increment service busy"
};
static const _error _error_OB_ERR_CONSTRAINT_CONSTRAINT_DISABLE_VALIDATE = {
      .error_name            = "OB_ERR_CONSTRAINT_CONSTRAINT_DISABLE_VALIDATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "No insert/update/delete on table with constraint disabled and validated",
      .str_user_error        = "No insert/update/delete on table with constraint (%.*s.%.*s) disabled and validated",
      .oracle_errno          = 25128,
      .oracle_str_error      = "ORA-25128: No insert/update/delete on table with constraint disabled and validated",
      .oracle_str_user_error = "ORA-25128: No insert/update/delete on table with constraint (%.*s.%.*s) disabled and validated"
};
static const _error _error_OB_ERR_AUTONOMOUS_TRANSACTION_ROLLBACK = {
      .error_name            = "OB_ERR_AUTONOMOUS_TRANSACTION_ROLLBACK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "active autonomous transaction detected and rolled back",
      .str_user_error        = "active autonomous transaction detected and rolled back",
      .oracle_errno          = 6519,
      .oracle_str_error      = "ORA-06519: active autonomous transaction detected and rolled back",
      .oracle_str_user_error = "ORA-06519: active autonomous transaction detected and rolled back"
};
static const _error _error_OB_ORDERBY_CLAUSE_NOT_ALLOWED = {
      .error_name            = "OB_ORDERBY_CLAUSE_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ORDER BY not allowed here",
      .str_user_error        = "ORDER BY not allowed here",
      .oracle_errno          = 30487,
      .oracle_str_error      = "ORA-30487: ORDER BY not allowed here",
      .oracle_str_user_error = "ORA-30487: ORDER BY not allowed here"
};
static const _error _error_OB_DISTINCT_NOT_ALLOWED = {
      .error_name            = "OB_DISTINCT_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "DISTINCT not allowed here",
      .str_user_error        = "DISTINCT not allowed here",
      .oracle_errno          = 30482,
      .oracle_str_error      = "ORA-30482: DISTINCT not allowed here",
      .oracle_str_user_error = "ORA-30482: DISTINCT not allowed here"
};
static const _error _error_OB_ERR_ASSIGN_USER_VARIABLE_NOT_ALLOWED = {
      .error_name            = "OB_ERR_ASSIGN_USER_VARIABLE_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "assign user variable with := only allowed in select filed list and as root expression",
      .str_user_error        = "assign user variable with := only allowed in select filed list and as root expression",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5799, assign user variable with := only allowed in select filed list and as root expression",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5799, assign user variable with := only allowed in select filed list and as root expression"
};
static const _error _error_OB_ERR_MODIFY_NONEXISTENT_CONSTRAINT = {
      .error_name            = "OB_ERR_MODIFY_NONEXISTENT_CONSTRAINT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot modify constraint - no such constraint",
      .str_user_error        = "cannot modify constraint (%.*s) - no such constraint",
      .oracle_errno          = 25129,
      .oracle_str_error      = "ORA-25129: cannot modify constraint - no such constraint",
      .oracle_str_user_error = "ORA-25129: cannot modify constraint (%.*s) - no such constraint"
};
static const _error _error_OB_ERR_SP_EXCEPTION_HANDLE_ILLEGAL = {
      .error_name            = "OB_ERR_SP_EXCEPTION_HANDLE_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "implementation restriction: exception handler in nested transaction is illegal",
      .str_user_error        = "implementation restriction: exception handler in nested transaction is illegal",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5801, implementation restriction: exception handler in nested transaction is illegal",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5801, implementation restriction: exception handler in nested transaction is illegal"
};
static const _error _error_OB_INVALID_ROWID = {
      .error_name            = "OB_INVALID_ROWID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid ROWID",
      .str_user_error        = "invalid ROWID",
      .oracle_errno          = 1410,
      .oracle_str_error      = "ORA-01410: invalid ROWID",
      .oracle_str_user_error = "ORA-01410: invalid ROWID"
};
static const _error _error_OB_ERR_INVALID_INSERT_COLUMN = {
      .error_name            = "OB_ERR_INVALID_INSERT_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid column in the INSERT VALUES Clause",
      .str_user_error        = "Invalid column in the INSERT VALUES Clause:'%.*s'.'%.*s'",
      .oracle_errno          = 38101,
      .oracle_str_error      = "ORA-38101: Invalid column in the INSERT VALUES Clause",
      .oracle_str_user_error = "ORA-38101: Invalid column in the INSERT VALUES Clause:'%.*s'.'%.*s'"
};
static const _error _error_OB_INCORRECT_USE_OF_OPERATOR = {
      .error_name            = "OB_INCORRECT_USE_OF_OPERATOR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "incorrect use of operator",
      .str_user_error        = "incorrect use of the ['%.*s'] operator",
      .oracle_errno          = 13207,
      .oracle_str_error      = "ORA-13207: incorrect use of operator",
      .oracle_str_user_error = "ORA-13207: incorrect use of the ['%.*s'] operator"
};
static const _error _error_OB_ERR_NON_CONST_EXPR_IS_NOT_ALLOWED_FOR_PIVOT_UNPIVOT_VALUES = {
      .error_name            = "OB_ERR_NON_CONST_EXPR_IS_NOT_ALLOWED_FOR_PIVOT_UNPIVOT_VALUES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "non-constant expression is not allowed for pivot|unpivot values",
      .str_user_error        = "non-constant expression is not allowed for pivot|unpivot values",
      .oracle_errno          = 56901,
      .oracle_str_error      = "ORA-56901: non-constant expression is not allowed for pivot|unpivot values",
      .oracle_str_user_error = "ORA-56901: non-constant expression is not allowed for pivot|unpivot values"
};
static const _error _error_OB_ERR_EXPECT_AGGREGATE_FUNCTION_INSIDE_PIVOT_OPERATION = {
      .error_name            = "OB_ERR_EXPECT_AGGREGATE_FUNCTION_INSIDE_PIVOT_OPERATION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "expect aggregate function inside pivot operation",
      .str_user_error        = "expect aggregate function inside pivot operation",
      .oracle_errno          = 56902,
      .oracle_str_error      = "ORA-56902: expect aggregate function inside pivot operation",
      .oracle_str_user_error = "ORA-56902: expect aggregate function inside pivot operation"
};
static const _error _error_OB_ERR_EXP_NEED_SAME_DATATYPE = {
      .error_name            = "OB_ERR_EXP_NEED_SAME_DATATYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "expression must have same datatype as corresponding expression",
      .str_user_error        = "expression must have same datatype as corresponding expression",
      .oracle_errno          = 1790,
      .oracle_str_error      = "ORA-01790: expression must have same datatype as corresponding expression",
      .oracle_str_user_error = "ORA-01790: expression must have same datatype as corresponding expression"
};
static const _error _error_OB_ERR_CHARACTER_SET_MISMATCH = {
      .error_name            = "OB_ERR_CHARACTER_SET_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "character set mismatch",
      .str_user_error        = "character set mismatch",
      .oracle_errno          = 12704,
      .oracle_str_error      = "ORA-12704: character set mismatch",
      .oracle_str_user_error = "ORA-12704: character set mismatch"
};
static const _error _error_OB_ERR_REGEXP_NOMATCH = {
      .error_name            = "OB_ERR_REGEXP_NOMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "regular expression failed to match",
      .str_user_error        = "regular expression failed to match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5809, regular expression failed to match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5809, regular expression failed to match"
};
static const _error _error_OB_ERR_REGEXP_BADPAT = {
      .error_name            = "OB_ERR_REGEXP_BADPAT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid regular expression (reg version 0.8)",
      .str_user_error        = "invalid regular expression (reg version 0.8)",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5810, invalid regular expression (reg version 0.8)",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5810, invalid regular expression (reg version 0.8)"
};
static const _error _error_OB_ERR_REGEXP_EESCAPE = {
      .error_name            = "OB_ERR_REGEXP_EESCAPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid escape \\ sequence in regular expression",
      .str_user_error        = "invalid escape \\ sequence in regular expression",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5811, invalid escape \\ sequence in regular expression",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5811, invalid escape \\ sequence in regular expression"
};
static const _error _error_OB_ERR_REGEXP_EBRACK = {
      .error_name            = "OB_ERR_REGEXP_EBRACK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unmatched bracket in regular expression",
      .str_user_error        = "unmatched bracket in regular expression",
      .oracle_errno          = 12726,
      .oracle_str_error      = "ORA-12726: unmatched bracket in regular expression",
      .oracle_str_user_error = "ORA-12726: unmatched bracket in regular expression"
};
static const _error _error_OB_ERR_REGEXP_EPAREN = {
      .error_name            = "OB_ERR_REGEXP_EPAREN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unmatched parentheses in regular expression",
      .str_user_error        = "unmatched parentheses in regular expression",
      .oracle_errno          = 12725,
      .oracle_str_error      = "ORA-12725: unmatched parentheses in regular expression",
      .oracle_str_user_error = "ORA-12725: unmatched parentheses in regular expression"
};
static const _error _error_OB_ERR_REGEXP_ESUBREG = {
      .error_name            = "OB_ERR_REGEXP_ESUBREG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid back reference in regular expression",
      .str_user_error        = "invalid back reference in regular expression",
      .oracle_errno          = 12727,
      .oracle_str_error      = "ORA-12727: invalid back reference in regular expression",
      .oracle_str_user_error = "ORA-12727: invalid back reference in regular expression"
};
static const _error _error_OB_ERR_REGEXP_ERANGE = {
      .error_name            = "OB_ERR_REGEXP_ERANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid range in regular expression",
      .str_user_error        = "invalid range in regular expression",
      .oracle_errno          = 12728,
      .oracle_str_error      = "ORA-12728: invalid range in regular expression",
      .oracle_str_user_error = "ORA-12728: invalid range in regular expression"
};
static const _error _error_OB_ERR_REGEXP_ECTYPE = {
      .error_name            = "OB_ERR_REGEXP_ECTYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid character class in regular expression",
      .str_user_error        = "invalid character class in regular expression",
      .oracle_errno          = 12729,
      .oracle_str_error      = "ORA-12729: invalid character class in regular expression",
      .oracle_str_user_error = "ORA-12729: invalid character class in regular expression"
};
static const _error _error_OB_ERR_REGEXP_ECOLLATE = {
      .error_name            = "OB_ERR_REGEXP_ECOLLATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid collation class in regular expression",
      .str_user_error        = "invalid collation class in regular expression",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5817, invalid collation class in regular expression",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5817, invalid collation class in regular expression"
};
static const _error _error_OB_ERR_REGEXP_EBRACE = {
      .error_name            = "OB_ERR_REGEXP_EBRACE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "braces {} not balanced in in regular expression",
      .str_user_error        = "braces {} not balanced in in regular expression",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5818, braces {} not balanced in in regular expression",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5818, braces {} not balanced in in regular expression"
};
static const _error _error_OB_ERR_REGEXP_BADBR = {
      .error_name            = "OB_ERR_REGEXP_BADBR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid repetition count(s) in regular expression",
      .str_user_error        = "invalid repetition count(s) in regular expression",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5819, invalid repetition count(s) in regular expression",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5819, invalid repetition count(s) in regular expression"
};
static const _error _error_OB_ERR_REGEXP_BADRPT = {
      .error_name            = "OB_ERR_REGEXP_BADRPT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The regular expression was too complex and current library can't be parsed",
      .str_user_error        = "The regular expression was too complex and current library can't be parsed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5820, The regular expression was too complex and current library can't be parsed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5820, The regular expression was too complex and current library can't be parsed"
};
static const _error _error_OB_ERR_REGEXP_ASSERT = {
      .error_name            = "OB_ERR_REGEXP_ASSERT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "regular expression internal error",
      .str_user_error        = "regular expression internal error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5821, regular expression internal error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5821, regular expression internal error"
};
static const _error _error_OB_ERR_REGEXP_INVARG = {
      .error_name            = "OB_ERR_REGEXP_INVARG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid argument in regular expression",
      .str_user_error        = "invalid argument in regular expression",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5822, invalid argument in regular expression",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5822, invalid argument in regular expression"
};
static const _error _error_OB_ERR_REGEXP_MIXED = {
      .error_name            = "OB_ERR_REGEXP_MIXED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "character widths of regex and string differ in regular expression",
      .str_user_error        = "character widths of regex and string differ in regular expression",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5823, character widths of regex and string differ in regular expression",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5823, character widths of regex and string differ in regular expression"
};
static const _error _error_OB_ERR_REGEXP_BADOPT = {
      .error_name            = "OB_ERR_REGEXP_BADOPT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid embedded option in regular expression",
      .str_user_error        = "invalid embedded option in regular expression",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5824, invalid embedded option in regular expression",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5824, invalid embedded option in regular expression"
};
static const _error _error_OB_ERR_REGEXP_ETOOBIG = {
      .error_name            = "OB_ERR_REGEXP_ETOOBIG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "nfa has too many states in regular expression, may be the regular expression too long",
      .str_user_error        = "nfa has too many states in regular expression, may be the regular expression too long",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5825, nfa has too many states in regular expression, may be the regular expression too long",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5825, nfa has too many states in regular expression, may be the regular expression too long"
};
static const _error _error_OB_NOT_SUPPORTED_ROWID_TYPE = {
      .error_name            = "OB_NOT_SUPPORTED_ROWID_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ROWID for tables without primary key is not implemented",
      .str_user_error        = "ROWID for tables without primary key is not implemented",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5826, ROWID for tables without primary key is not implemented",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5826, ROWID for tables without primary key is not implemented"
};
static const _error _error_OB_ERR_PARALLEL_DDL_CONFLICT = {
      .error_name            = "OB_ERR_PARALLEL_DDL_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the definition of relative objects have been modified, please check and retry",
      .str_user_error        = "the definition of relative objects have been modified, please check and retry",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5827, the definition of relative objects have been modified, please check and retry",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5827, the definition of relative objects have been modified, please check and retry"
};
static const _error _error_OB_ERR_SUBSCRIPT_BEYOND_COUNT = {
      .error_name            = "OB_ERR_SUBSCRIPT_BEYOND_COUNT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Subscript beyond count",
      .str_user_error        = "Subscript beyond count",
      .oracle_errno          = 6533,
      .oracle_str_error      = "ORA-06533: Subscript beyond count",
      .oracle_str_user_error = "ORA-06533: Subscript beyond count"
};
static const _error _error_OB_ERR_NOT_PARTITIONED = {
      .error_name            = "OB_ERR_NOT_PARTITIONED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "PARTITION () clause on non partitioned table",
      .str_user_error        = "PARTITION () clause on non partitioned table",
      .oracle_errno          = 14501,
      .oracle_str_error      = "ORA-14501: object is not partitioned",
      .oracle_str_user_error = "ORA-14501: object is not partitioned"
};
static const _error _error_OB_UNKNOWN_SUBPARTITION = {
      .error_name            = "OB_UNKNOWN_SUBPARTITION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Unknown subpartition",
      .str_user_error        = "Unknown subpartition",
      .oracle_errno          = 14251,
      .oracle_str_error      = "ORA-14251: Specified subpartition does not exist",
      .oracle_str_user_error = "ORA-14251: Specified subpartition does not exist"
};
static const _error _error_OB_ERR_INVALID_SQL_ROW_LIMITING = {
      .error_name            = "OB_ERR_INVALID_SQL_ROW_LIMITING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid SQL ROW LIMITING expression was specified.",
      .str_user_error        = "Invalid SQL ROW LIMITING expression was specified.",
      .oracle_errno          = 62550,
      .oracle_str_error      = "ORA-62550: Invalid SQL ROW LIMITING expression was specified.",
      .oracle_str_user_error = "ORA-62550: Invalid SQL ROW LIMITING expression was specified."
};
static const _error _error_INCORRECT_ARGUMENTS_TO_ESCAPE = {
      .error_name            = "INCORRECT_ARGUMENTS_TO_ESCAPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_ARGUMENTS,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect arguments to ESCAPE",
      .str_user_error        = "Incorrect arguments to ESCAPE",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5832, Incorrect arguments to ESCAPE",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5832, Incorrect arguments to ESCAPE"
};
static const _error _error_STATIC_ENG_NOT_IMPLEMENT = {
      .error_name            = "STATIC_ENG_NOT_IMPLEMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not implemented in SQL static typing engine, will try the old engine automatically",
      .str_user_error        = "not implemented in SQL static typing engine, will try the old engine automatically",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5833, not implemented in SQL static typing engine, will try the old engine automatically",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5833, not implemented in SQL static typing engine, will try the old engine automatically"
};
static const _error _error_OB_OBJ_ALREADY_EXIST = {
      .error_name            = "OB_OBJ_ALREADY_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "name is already used by an existing object",
      .str_user_error        = "name is already used by an existing object",
      .oracle_errno          = 955,
      .oracle_str_error      = "ORA-00955: name is already used by an existing object",
      .oracle_str_user_error = "ORA-00955: name is already used by an existing object"
};
static const _error _error_OB_DBLINK_NOT_EXIST_TO_ACCESS = {
      .error_name            = "OB_DBLINK_NOT_EXIST_TO_ACCESS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "connection description for remote database not found",
      .str_user_error        = "connection description for remote database not found",
      .oracle_errno          = 2019,
      .oracle_str_error      = "ORA-02019: connection description for remote database not found",
      .oracle_str_user_error = "ORA-02019: connection description for remote database not found"
};
static const _error _error_OB_DBLINK_NOT_EXIST_TO_DROP = {
      .error_name            = "OB_DBLINK_NOT_EXIST_TO_DROP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "database link not found",
      .str_user_error        = "database link not found",
      .oracle_errno          = 2024,
      .oracle_str_error      = "ORA-02024: database link not found",
      .oracle_str_user_error = "ORA-02024: database link not found"
};
static const _error _error_OB_ERR_ACCESS_INTO_NULL = {
      .error_name            = "OB_ERR_ACCESS_INTO_NULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Reference to uninitialized composite",
      .str_user_error        = "Reference to uninitialized composite",
      .oracle_errno          = 6530,
      .oracle_str_error      = "ORA-06530: Reference to uninitialized composite",
      .oracle_str_user_error = "ORA-06530: Reference to uninitialized composite"
};
static const _error _error_OB_ERR_COLLECION_NULL = {
      .error_name            = "OB_ERR_COLLECION_NULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Reference to uninitialized collection",
      .str_user_error        = "Reference to uninitialized collection",
      .oracle_errno          = 6531,
      .oracle_str_error      = "ORA-06531: Reference to uninitialized collection",
      .oracle_str_user_error = "ORA-06531: Reference to uninitialized collection"
};
static const _error _error_OB_ERR_NO_DATA_NEEDED = {
      .error_name            = "OB_ERR_NO_DATA_NEEDED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no more rows needed",
      .str_user_error        = "no more rows needed",
      .oracle_errno          = 6548,
      .oracle_str_error      = "ORA-06548: no more rows needed",
      .oracle_str_user_error = "ORA-06548: no more rows needed"
};
static const _error _error_OB_ERR_PROGRAM_ERROR = {
      .error_name            = "OB_ERR_PROGRAM_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "PL/SQL: program error",
      .str_user_error        = "PL/SQL: program error",
      .oracle_errno          = 6501,
      .oracle_str_error      = "ORA-06501: PL/SQL: program error",
      .oracle_str_user_error = "ORA-06501: PL/SQL: program error"
};
static const _error _error_OB_ERR_ROWTYPE_MISMATCH = {
      .error_name            = "OB_ERR_ROWTYPE_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "PL/SQL: Return types of Result Set variables or query do not match",
      .str_user_error        = "PL/SQL: Return types of Result Set variables or query do not match",
      .oracle_errno          = 6504,
      .oracle_str_error      = "ORA-06504: PL/SQL: Return types of Result Set variables or query do not match",
      .oracle_str_user_error = "ORA-06504: PL/SQL: Return types of Result Set variables or query do not match"
};
static const _error _error_OB_ERR_STORAGE_ERROR = {
      .error_name            = "OB_ERR_STORAGE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "PL/SQL: storage error",
      .str_user_error        = "PL/SQL: storage error",
      .oracle_errno          = 6500,
      .oracle_str_error      = "ORA-06500: PL/SQL: storage error",
      .oracle_str_user_error = "ORA-06500: PL/SQL: storage error"
};
static const _error _error_OB_ERR_SUBSCRIPT_OUTSIDE_LIMIT = {
      .error_name            = "OB_ERR_SUBSCRIPT_OUTSIDE_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Subscript outside of limit",
      .str_user_error        = "Subscript outside of limit",
      .oracle_errno          = 6532,
      .oracle_str_error      = "ORA-06532: Subscript outside of limit",
      .oracle_str_user_error = "ORA-06532: Subscript outside of limit"
};
static const _error _error_OB_ERR_INVALID_CURSOR = {
      .error_name            = "OB_ERR_INVALID_CURSOR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid cursor",
      .str_user_error        = "invalid cursor",
      .oracle_errno          = 1001,
      .oracle_str_error      = "ORA-01001: invalid cursor",
      .oracle_str_user_error = "ORA-01001: invalid cursor"
};
static const _error _error_OB_ERR_LOGIN_DENIED = {
      .error_name            = "OB_ERR_LOGIN_DENIED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid username/password; logon denied",
      .str_user_error        = "invalid username/password; logon denied",
      .oracle_errno          = 1017,
      .oracle_str_error      = "ORA-01017: invalid username/password; logon denied",
      .oracle_str_user_error = "ORA-01017: invalid username/password; logon denied"
};
static const _error _error_OB_ERR_NOT_LOGGED_ON = {
      .error_name            = "OB_ERR_NOT_LOGGED_ON",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not logged on",
      .str_user_error        = "not logged on",
      .oracle_errno          = 1012,
      .oracle_str_error      = "ORA-01012: not logged on",
      .oracle_str_user_error = "ORA-01012: not logged on"
};
static const _error _error_OB_ERR_SELF_IS_NULL = {
      .error_name            = "OB_ERR_SELF_IS_NULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "method dispatch on NULL SELF argument is disallowed",
      .str_user_error        = "method dispatch on NULL SELF argument is disallowed",
      .oracle_errno          = 30625,
      .oracle_str_error      = "ORA-30625: method dispatch on NULL SELF argument is disallowed",
      .oracle_str_user_error = "ORA-30625: method dispatch on NULL SELF argument is disallowed"
};
static const _error _error_OB_ERR_TIMEOUT_ON_RESOURCE = {
      .error_name            = "OB_ERR_TIMEOUT_ON_RESOURCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "timeout occurred while waiting for a resource",
      .str_user_error        = "timeout occurred while waiting for a resource",
      .oracle_errno          = 51,
      .oracle_str_error      = "ORA-00051: timeout occurred while waiting for a resource",
      .oracle_str_user_error = "ORA-00051: timeout occurred while waiting for a resource"
};
static const _error _error_OB_COLUMN_CANT_CHANGE_TO_NOT_NULL = {
      .error_name            = "OB_COLUMN_CANT_CHANGE_TO_NOT_NULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "column to be modified to NOT NULL is already NOT NULL",
      .str_user_error        = "column to be modified to NOT NULL is already NOT NULL",
      .oracle_errno          = 1442,
      .oracle_str_error      = "ORA-01442: column to be modified to NOT NULL is already NOT NULL",
      .oracle_str_user_error = "ORA-01442: column to be modified to NOT NULL is already NOT NULL"
};
static const _error _error_OB_COLUMN_CANT_CHANGE_TO_NULLALE = {
      .error_name            = "OB_COLUMN_CANT_CHANGE_TO_NULLALE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "column to be modified to NULL cannot be modified to NULL",
      .str_user_error        = "column to be modified to NULL cannot be modified to NULL",
      .oracle_errno          = 1451,
      .oracle_str_error      = "ORA-01451: column to be modified to NULL cannot be modified to NULL",
      .oracle_str_user_error = "ORA-01451: column to be modified to NULL cannot be modified to NULL"
};
static const _error _error_OB_ENABLE_NOT_NULL_CONSTRAINT_VIOLATED = {
      .error_name            = "OB_ENABLE_NOT_NULL_CONSTRAINT_VIOLATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot enable - null values found",
      .str_user_error        = "cannot enable (%.*s.%.*s) - null values found",
      .oracle_errno          = 2296,
      .oracle_str_error      = "ORA-02296: cannot enable - null values found",
      .oracle_str_user_error = "ORA-02296: cannot enable (%.*s.%.*s) - null values found"
};
static const _error _error_OB_ERR_ARGUMENT_SHOULD_CONSTANT = {
      .error_name            = "OB_ERR_ARGUMENT_SHOULD_CONSTANT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Argument should be a constant.",
      .str_user_error        = "Argument should be a constant.",
      .oracle_errno          = 30496,
      .oracle_str_error      = "ORA-30496: Argument should be a constant.",
      .oracle_str_user_error = "ORA-30496: Argument should be a constant."
};
static const _error _error_OB_ERR_NOT_A_SINGLE_GROUP_FUNCTION = {
      .error_name            = "OB_ERR_NOT_A_SINGLE_GROUP_FUNCTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not a single-group group function",
      .str_user_error        = "not a single-group group function",
      .oracle_errno          = 937,
      .oracle_str_error      = "ORA-00937: not a single-group group function",
      .oracle_str_user_error = "ORA-00937: not a single-group group function"
};
static const _error _error_OB_ERR_ZERO_LENGTH_IDENTIFIER = {
      .error_name            = "OB_ERR_ZERO_LENGTH_IDENTIFIER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "illegal zero-length identifier",
      .str_user_error        = "illegal zero-length identifier",
      .oracle_errno          = 1741,
      .oracle_str_error      = "ORA-01741: illegal zero-length identifier",
      .oracle_str_user_error = "ORA-01741: illegal zero-length identifier"
};
static const _error _error_OB_ERR_PARAM_VALUE_INVALID = {
      .error_name            = "OB_ERR_PARAM_VALUE_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "parameter cannot be modified because specified value is invalid",
      .str_user_error        = "parameter cannot be modified because specified value is invalid",
      .oracle_errno          = 2097,
      .oracle_str_error      = "ORA-02097: parameter cannot be modified because specified value is invalid",
      .oracle_str_user_error = "ORA-02097: parameter cannot be modified because specified value is invalid"
};
static const _error _error_OB_ERR_DBMS_SQL_CURSOR_NOT_EXIST = {
      .error_name            = "OB_ERR_DBMS_SQL_CURSOR_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "DBMS_SQL access denied",
      .str_user_error        = "DBMS_SQL access denied",
      .oracle_errno          = 29471,
      .oracle_str_error      = "ORA-29471: DBMS_SQL access denied",
      .oracle_str_user_error = "ORA-29471: DBMS_SQL access denied"
};
static const _error _error_OB_ERR_DBMS_SQL_NOT_ALL_VAR_BIND = {
      .error_name            = "OB_ERR_DBMS_SQL_NOT_ALL_VAR_BIND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not all variables bound",
      .str_user_error        = "not all variables bound",
      .oracle_errno          = 1008,
      .oracle_str_error      = "ORA-01008: not all variables bound",
      .oracle_str_user_error = "ORA-01008: not all variables bound"
};
static const _error _error_OB_ERR_CONFLICTING_DECLARATIONS = {
      .error_name            = "OB_ERR_CONFLICTING_DECLARATIONS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CONFLICTING_DECLARATIONS,
      .sqlstate              = "42000",
      .str_error             = "Conflicting declarations",
      .str_user_error        = "Conflicting declarations: '%s' and '%s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5858, Conflicting declarations",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5858, Conflicting declarations: '%s' and '%s'"
};
static const _error _error_OB_ERR_DROP_COL_REFERENCED_MULTI_COLS_CONSTRAINT = {
      .error_name            = "OB_ERR_DROP_COL_REFERENCED_MULTI_COLS_CONSTRAINT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DEPENDENT_BY_CHECK_CONSTRAINT,
      .sqlstate              = "HY000",
      .str_error             = "column is referenced in a multi-column constraint",
      .str_user_error        = "Check constraint \'%.*s\' uses column \'%.*s\', hence column cannot be dropped or renamed.",
      .oracle_errno          = 12991,
      .oracle_str_error      = "ORA-12991: column is referenced in a multi-column constraint",
      .oracle_str_user_error = "ORA-12991: column \'%.*s\' is referenced in a multi-column constraint \'%.*s\'"
};
static const _error _error_OB_ERR_MODIFY_COL_DATATYEP_REFERENCED_CONSTRAINT = {
      .error_name            = "OB_ERR_MODIFY_COL_DATATYEP_REFERENCED_CONSTRAINT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot modify column datatype with current constraint(s)",
      .str_user_error        = "cannot modify column datatype with current constraint(s)",
      .oracle_errno          = 1463,
      .oracle_str_error      = "ORA-01463: cannot modify column datatype with current constraint(s)",
      .oracle_str_user_error = "ORA-01463: cannot modify column datatype with current constraint(s)"
};
static const _error _error_OB_ERR_PERCENTILE_VALUE_INVALID = {
      .error_name            = "OB_ERR_PERCENTILE_VALUE_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The percentile value should be a number between 0 and 1.",
      .str_user_error        = "The percentile value should be a number between 0 and 1.",
      .oracle_errno          = 30493,
      .oracle_str_error      = "ORA-30493: The percentile value should be a number between 0 and 1.",
      .oracle_str_user_error = "ORA-30493: The percentile value should be a number between 0 and 1."
};
static const _error _error_OB_ERR_ARGUMENT_SHOULD_NUMERIC_DATE_DATETIME_TYPE = {
      .error_name            = "OB_ERR_ARGUMENT_SHOULD_NUMERIC_DATE_DATETIME_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The argument should be of numeric or date/datetime type.",
      .str_user_error        = "The argument should be of numeric or date/datetime type.",
      .oracle_errno          = 30495,
      .oracle_str_error      = "ORA-30495: The argument should be of numeric or date/datetime type.",
      .oracle_str_user_error = "ORA-30495: The argument should be of numeric or date/datetime type."
};
static const _error _error_OB_ERR_ALTER_TABLE_RENAME_WITH_OPTION = {
      .error_name            = "OB_ERR_ALTER_TABLE_RENAME_WITH_OPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ALTER TABLE|INDEX RENAME may not be combined with other operations",
      .str_user_error        = "ALTER TABLE|INDEX RENAME may not be combined with other operations",
      .oracle_errno          = 14047,
      .oracle_str_error      = "ORA-14047: ALTER TABLE|INDEX RENAME may not be combined with other operations",
      .oracle_str_user_error = "ORA-14047: ALTER TABLE|INDEX RENAME may not be combined with other operations"
};
static const _error _error_OB_ERR_ONLY_SIMPLE_COLUMN_NAME_ALLOWED = {
      .error_name            = "OB_ERR_ONLY_SIMPLE_COLUMN_NAME_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "only simple column names allowed here.",
      .str_user_error        = "only simple column names allowed here.",
      .oracle_errno          = 1748,
      .oracle_str_error      = "ORA-01748: only simple column names allowed here.",
      .oracle_str_user_error = "ORA-01748: only simple column names allowed here."
};
static const _error _error_OB_ERR_SAFE_UPDATE_MODE_NEED_WHERE_OR_LIMIT = {
      .error_name            = "OB_ERR_SAFE_UPDATE_MODE_NEED_WHERE_OR_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE,
      .sqlstate              = "HY000",
      .str_error             = "You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column",
      .str_user_error        = "You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5865, You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5865, You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column"
};
static const _error _error_OB_ERR_SPECIFIY_PARTITION_DESCRIPTION = {
      .error_name            = "OB_ERR_SPECIFIY_PARTITION_DESCRIPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot specify <(sub)partition-description> clause in CREATE TABLE or CREATE INDEX",
      .str_user_error        = "cannot specify <(sub)partition-description> clause in CREATE TABLE or CREATE INDEX",
      .oracle_errno          = 14170,
      .oracle_str_error      = "ORA-14170: cannot specify <(sub)partition-description> clause in CREATE TABLE or CREATE INDEX",
      .oracle_str_user_error = "ORA-14170: cannot specify <(sub)partition-description> clause in CREATE TABLE or CREATE INDEX"
};
static const _error _error_OB_ERR_SAME_NAME_SUBPARTITION = {
      .error_name            = "OB_ERR_SAME_NAME_SUBPARTITION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Duplicate partition name",
      .str_user_error        = "Duplicate partition name %.*s",
      .oracle_errno          = 14159,
      .oracle_str_error      = "ORA-14159: duplicate subpartition name",
      .oracle_str_user_error = "ORA-14159: duplicate subpartition name %.*s"
};
static const _error _error_OB_ERR_UPDATE_ORDER_BY = {
      .error_name            = "OB_ERR_UPDATE_ORDER_BY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect usage of UPDATE and ORDER BY",
      .str_user_error        = "Incorrect usage of UPDATE and ORDER BY",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5868, Incorrect usage of UPDATE and ORDER BY",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5868, Incorrect usage of UPDATE and ORDER BY"
};
static const _error _error_OB_ERR_UPDATE_LIMIT = {
      .error_name            = "OB_ERR_UPDATE_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect usage of UPDATE and LIMIT",
      .str_user_error        = "Incorrect usage of UPDATE and LIMIT",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5869, Incorrect usage of UPDATE and LIMIT",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5869, Incorrect usage of UPDATE and LIMIT"
};
static const _error _error_OB_ROWID_TYPE_MISMATCH = {
      .error_name            = "OB_ROWID_TYPE_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "rowid type mismatch",
      .str_user_error        = "rowid type mismatch, expect %.*s, got %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: rowid type mismatch",
      .oracle_str_user_error = "ORA-00600: rowid type mismatch, expect %.*s, got %.*s"
};
static const _error _error_OB_ROWID_NUM_MISMATCH = {
      .error_name            = "OB_ROWID_NUM_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "rowid num mismatch",
      .str_user_error        = "rowid num mismatch, expect %ld, actual %ld",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: rowid num mismatch",
      .oracle_str_user_error = "ORA-00600: rowid num mismatch, expect %ld, actual %ld"
};
static const _error _error_OB_NO_COLUMN_ALIAS = {
      .error_name            = "OB_NO_COLUMN_ALIAS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "must name this expression with a column alias",
      .str_user_error        = "must name %.*s with a column alias",
      .oracle_errno          = 998,
      .oracle_str_error      = "ORA-00998: must name this expression with a column alias",
      .oracle_str_user_error = "ORA-00998: must name %.*s with a column alias"
};
static const _error _error_OB_ERR_NUMERIC_NOT_MATCH_FORMAT_LENGTH = {
      .error_name            = "OB_ERR_NUMERIC_NOT_MATCH_FORMAT_LENGTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the numeric value does not match the length of the format item",
      .str_user_error        = "the numeric value does not match the length of the format item",
      .oracle_errno          = 1862,
      .oracle_str_error      = "ORA-01862: the numeric value does not match the length of the format item",
      .oracle_str_user_error = "ORA-01862: the numeric value does not match the length of the format item"
};
static const _error _error_OB_ERR_INVALID_DATATYPE = {
      .error_name            = "OB_ERR_INVALID_DATATYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid datatype",
      .str_user_error        = "invalid datatype",
      .oracle_errno          = 902,
      .oracle_str_error      = "ORA-00902: invalid datatype",
      .oracle_str_user_error = "ORA-00902: invalid datatype"
};
static const _error _error_OB_ERR_NOT_COMPOSITE_PARTITION = {
      .error_name            = "OB_ERR_NOT_COMPOSITE_PARTITION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "table is not partitioned by composite partition method",
      .str_user_error        = "table is not partitioned by composite partition method",
      .oracle_errno          = 14253,
      .oracle_str_error      = "ORA-14253: table is not partitioned by composite partition method",
      .oracle_str_user_error = "ORA-14253: table is not partitioned by composite partition method"
};
static const _error _error_OB_ERR_SUBPARTITION_NOT_EXPECT_VALUES_IN = {
      .error_name            = "OB_ERR_SUBPARTITION_NOT_EXPECT_VALUES_IN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "VALUES IN (<value list>) cannot be used for Range subpartitioned tables",
      .str_user_error        = "VALUES IN (<value list>) cannot be used for Range subpartitioned tables",
      .oracle_errno          = 14214,
      .oracle_str_error      = "ORA-14214: VALUES (<value list>) cannot be used for Range subpartitioned tables",
      .oracle_str_user_error = "ORA-14214: VALUES (<value list>) cannot be used for Range subpartitioned tables"
};
static const _error _error_OB_ERR_SUBPARTITION_EXPECT_VALUES_IN = {
      .error_name            = "OB_ERR_SUBPARTITION_EXPECT_VALUES_IN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "VALUES IN (<value list>) clause expected",
      .str_user_error        = "VALUES IN (<value list>) clause expected",
      .oracle_errno          = 14217,
      .oracle_str_error      = "ORA-14217: VALUES (<value list>) clause expected",
      .oracle_str_user_error = "ORA-14217: VALUES (<value list>) clause expected"
};
static const _error _error_OB_ERR_PARTITION_NOT_EXPECT_VALUES_LESS_THAN = {
      .error_name            = "OB_ERR_PARTITION_NOT_EXPECT_VALUES_LESS_THAN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 1480,
      .sqlstate              = "HY000",
      .str_error             = "Only RANGE PARTITIONING can use VALUES LESS THAN in partition definition",
      .str_user_error        = "Only RANGE PARTITIONING can use VALUES LESS THAN in partition definition",
      .oracle_errno          = 14310,
      .oracle_str_error      = "ORA-14310: VALUES LESS THAN or AT clause cannot be used with List partitioned tables",
      .oracle_str_user_error = "ORA-14310: VALUES LESS THAN or AT clause cannot be used with List partitioned tables"
};
static const _error _error_OB_ERR_PARTITION_EXPECT_VALUES_LESS_THAN = {
      .error_name            = "OB_ERR_PARTITION_EXPECT_VALUES_LESS_THAN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Expecting VALUES LESS THAN  or AT clause",
      .str_user_error        = "Expecting VALUES LESS THAN  or AT clause",
      .oracle_errno          = 14311,
      .oracle_str_error      = "ORA-14311: Expecting VALUES LESS THAN  or AT clause",
      .oracle_str_user_error = "ORA-14311: Expecting VALUES LESS THAN  or AT clause"
};
static const _error _error_OB_ERR_PROGRAM_UNIT_NOT_EXIST = {
      .error_name            = "OB_ERR_PROGRAM_UNIT_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Procedure, function, package, or package body does not exist",
      .str_user_error        = "Procedure, function, package, or package body does not exist",
      .oracle_errno          = 4042,
      .oracle_str_error      = "ORA-04042: procedure, function, package, or package body does not exist",
      .oracle_str_user_error = "ORA-04042: procedure, function, package, or package body does not exist"
};
static const _error _error_OB_ERR_INVALID_RESTORE_POINT_NAME = {
      .error_name            = "OB_ERR_INVALID_RESTORE_POINT_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid restore point name specified in connection string",
      .str_user_error        = "invalid restore point name specified in connection string",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5881, invalid restore point name specified in connection string",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5881, invalid restore point name specified in connection string"
};
static const _error _error_OB_ERR_INPUT_TIME_TYPE = {
      .error_name            = "OB_ERR_INPUT_TIME_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid time limit specified",
      .str_user_error        = "invalid time limit specified",
      .oracle_errno          = 14312,
      .oracle_str_error      = "ORA-14312: invalid time limit specified",
      .oracle_str_user_error = "ORA-14312: invalid time limit specified"
};
static const _error _error_OB_ERR_IN_ARRAY_DML = {
      .error_name            = "OB_ERR_IN_ARRAY_DML",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "error(s) in array DML",
      .str_user_error        = "error(s) in array DML",
      .oracle_errno          = 24381,
      .oracle_str_error      = "ORA-24381: error(s) in array DML",
      .oracle_str_user_error = "ORA-24381: error(s) in array DML"
};
static const _error _error_OB_ERR_TRIGGER_COMPILE_ERROR = {
      .error_name            = "OB_ERR_TRIGGER_COMPILE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "trigger compile error",
      .str_user_error        = "%s \'%.*s.%.*s\' compile error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5884, trigger compile error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5884, %s \'%.*s.%.*s\' compile error"
};
static const _error _error_OB_ERR_IN_TRIM_SET = {
      .error_name            = "OB_ERR_IN_TRIM_SET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "trim set should have only one character",
      .str_user_error        = "trim set should have only one character",
      .oracle_errno          = 30001,
      .oracle_str_error      = "ORA-30001: trim set should have only one character",
      .oracle_str_user_error = "ORA-30001: trim set should have only one character"
};
static const _error _error_OB_ERR_MISSING_OR_INVALID_PASSWORD_FOR_ROLE = {
      .error_name            = "OB_ERR_MISSING_OR_INVALID_PASSWORD_FOR_ROLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "missing or invalid password",
      .str_user_error        = "missing or invalid password for role '%.*s'",
      .oracle_errno          = 1979,
      .oracle_str_error      = "ORA-01979: missing or invalid password",
      .oracle_str_user_error = "ORA-01979: missing or invalid password for role '%.*s'"
};
static const _error _error_OB_ERR_MISSING_OR_INVALID_PASSWORD = {
      .error_name            = "OB_ERR_MISSING_OR_INVALID_PASSWORD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "missing or invalid password(s)",
      .str_user_error        = "missing or invalid password(s)",
      .oracle_errno          = 988,
      .oracle_str_error      = "ORA-00988: missing or invalid password(s)",
      .oracle_str_user_error = "ORA-00988: missing or invalid password(s)"
};
static const _error _error_OB_ERR_NO_OPTIONS_FOR_ALTER_USER = {
      .error_name            = "OB_ERR_NO_OPTIONS_FOR_ALTER_USER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no options specified for ALTER USER",
      .str_user_error        = "no options specified for ALTER USER",
      .oracle_errno          = 2157,
      .oracle_str_error      = "ORA-02157: no options specified for ALTER USER",
      .oracle_str_user_error = "ORA-02157: no options specified for ALTER USER"
};
static const _error _error_OB_ERR_NO_MATCHING_UK_PK_FOR_COL_LIST = {
      .error_name            = "OB_ERR_NO_MATCHING_UK_PK_FOR_COL_LIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no matching unique or primary key for this column-list",
      .str_user_error        = "no matching unique or primary key for this column-list",
      .oracle_errno          = 2270,
      .oracle_str_error      = "ORA-02270: no matching unique or primary key for this column-list",
      .oracle_str_user_error = "ORA-02270: no matching unique or primary key for this column-list"
};
static const _error _error_OB_ERR_DUP_FK_IN_TABLE = {
      .error_name            = "OB_ERR_DUP_FK_IN_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate referential constraint specifications",
      .str_user_error        = "duplicate referential constraint specifications",
      .oracle_errno          = 2774,
      .oracle_str_error      = "ORA-02774: duplicate referential constraint specifications",
      .oracle_str_user_error = "ORA-02774: duplicate referential constraint specifications"
};
static const _error _error_OB_ERR_DUP_FK_EXISTS = {
      .error_name            = "OB_ERR_DUP_FK_EXISTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "such a referential constraint already exists in the table",
      .str_user_error        = "such a referential constraint already exists in the table",
      .oracle_errno          = 2775,
      .oracle_str_error      = "ORA-02775: such a referential constraint already exists in the table",
      .oracle_str_user_error = "ORA-02775: such a referential constraint already exists in the table"
};
static const _error _error_OB_ERR_MISSING_OR_INVALID_PRIVIEGE = {
      .error_name            = "OB_ERR_MISSING_OR_INVALID_PRIVIEGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "missing or invalid privilege",
      .str_user_error        = "missing or invalid privilege",
      .oracle_errno          = 990,
      .oracle_str_error      = "ORA-00990: missing or invalid privilege",
      .oracle_str_user_error = "ORA-00990: missing or invalid privilege"
};
static const _error _error_OB_ERR_INVALID_VIRTUAL_COLUMN_TYPE = {
      .error_name            = "OB_ERR_INVALID_VIRTUAL_COLUMN_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "specified data type is not supported for a virtual column",
      .str_user_error        = "specified data type is not supported for a virtual column",
      .oracle_errno          = 54003,
      .oracle_str_error      = "ORA-54003: specified data type is not supported for a virtual column",
      .oracle_str_user_error = "ORA-54003: specified data type is not supported for a virtual column"
};
static const _error _error_OB_ERR_REFERENCED_TABLE_HAS_NO_PK = {
      .error_name            = "OB_ERR_REFERENCED_TABLE_HAS_NO_PK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "referenced table does not have a primary key",
      .str_user_error        = "referenced table does not have a primary key",
      .oracle_errno          = 2268,
      .oracle_str_error      = "ORA-02268: referenced table does not have a primary key",
      .oracle_str_user_error = "ORA-02268: referenced table does not have a primary key"
};
static const _error _error_OB_ERR_MODIFY_PART_COLUMN_TYPE = {
      .error_name            = "OB_ERR_MODIFY_PART_COLUMN_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "data type or length of a table partitioning column may not be changed",
      .str_user_error        = "data type or length of a table partitioning column may not be changed",
      .oracle_errno          = 14060,
      .oracle_str_error      = "ORA-14060: data type or length of a table partitioning column may not be changed",
      .oracle_str_user_error = "ORA-14060: data type or length of a table partitioning column may not be changed"
};
static const _error _error_OB_ERR_MODIFY_SUBPART_COLUMN_TYPE = {
      .error_name            = "OB_ERR_MODIFY_SUBPART_COLUMN_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "data type or length of a table subpartitioning column may not be changed",
      .str_user_error        = "data type or length of a table subpartitioning column may not be changed",
      .oracle_errno          = 14265,
      .oracle_str_error      = "ORA-14265: data type or length of a table subpartitioning column may not be changed",
      .oracle_str_user_error = "ORA-14265: data type or length of a table subpartitioning column may not be changed"
};
static const _error _error_OB_ERR_DECREASE_COLUMN_LENGTH = {
      .error_name            = "OB_ERR_DECREASE_COLUMN_LENGTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot decrease column length because some value is too big",
      .str_user_error        = "cannot decrease column length because some value is too big",
      .oracle_errno          = 1441,
      .oracle_str_error      = "ORA-01441: cannot decrease column length because some value is too big",
      .oracle_str_user_error = "ORA-01441: cannot decrease column length because some value is too big"
};
static const _error _error_OB_ERR_DATETIME_INTERVAL_INTERNAL_ERROR = {
      .error_name            = "OB_ERR_DATETIME_INTERVAL_INTERNAL_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Datetime/Interval internal error",
      .str_user_error        = "Datetime/Interval internal error",
      .oracle_errno          = 1891,
      .oracle_str_error      = "ORA-01891: Datetime/Interval internal error",
      .oracle_str_user_error = "ORA-01891: Datetime/Interval internal error"
};
static const _error _error_OB_ERR_REMOTE_PART_ILLEGAL = {
      .error_name            = "OB_ERR_REMOTE_PART_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "partition extended table name cannot refer to a remote object",
      .str_user_error        = "partition extended table name cannot refer to a remote object",
      .oracle_errno          = 14100,
      .oracle_str_error      = "ORA-14100: partition extended table name cannot refer to a remote object",
      .oracle_str_user_error = "ORA-14100: partition extended table name cannot refer to a remote object"
};
static const _error _error_OB_ERR_DUPLICATE_COLUMN_EXPRESSION_WAS_SPECIFIED = {
      .error_name            = "OB_ERR_DUPLICATE_COLUMN_EXPRESSION_WAS_SPECIFIED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Duplicate column expression was specified",
      .str_user_error        = "Duplicate column expression was specified",
      .oracle_errno          = 54015,
      .oracle_str_error      = "ORA-54015: Duplicate column expression was specified",
      .oracle_str_user_error = "ORA-54015: Duplicate column expression was specified"
};
static const _error _error_OB_ERR_A_VIEW_NOT_APPROPRIATE_HERE = {
      .error_name            = "OB_ERR_A_VIEW_NOT_APPROPRIATE_HERE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "a view is not appropriate here",
      .str_user_error        = "a view is not appropriate here",
      .oracle_errno          = 1702,
      .oracle_str_error      = "ORA-01702: a view is not appropriate here",
      .oracle_str_user_error = "ORA-01702: a view is not appropriate here"
};
static const _error _error_OB_ROWID_VIEW_NO_KEY_PRESERVED = {
      .error_name            = "OB_ROWID_VIEW_NO_KEY_PRESERVED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot select ROWID from, or sample, a join view without a key-preserved table",
      .str_user_error        = "cannot select ROWID from, or sample, a join view without a key-preserved table",
      .oracle_errno          = 1445,
      .oracle_str_error      = "ORA-01445: cannot select ROWID from, or sample, a join view without a key-preserved table",
      .oracle_str_user_error = "ORA-01445: cannot select ROWID from, or sample, a join view without a key-preserved table"
};
static const _error _error_OB_ROWID_VIEW_HAS_DISTINCT_ETC = {
      .error_name            = "OB_ROWID_VIEW_HAS_DISTINCT_ETC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot select ROWID from, or sample, a view with DISTINCT, GROUP BY, etc",
      .str_user_error        = "cannot select ROWID from, or sample, a view with DISTINCT, GROUP BY, etc",
      .oracle_errno          = 1446,
      .oracle_str_error      = "ORA-01446: cannot select ROWID from, or sample, a view with DISTINCT, GROUP BY, etc",
      .oracle_str_user_error = "ORA-01446: cannot select ROWID from, or sample, a view with DISTINCT, GROUP BY, etc"
};
static const _error _error_OB_ERR_AT_LEAST_ONE_COLUMN_NOT_VIRTUAL = {
      .error_name            = "OB_ERR_AT_LEAST_ONE_COLUMN_NOT_VIRTUAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TABLE_MUST_HAVE_COLUMNS,
      .sqlstate              = "42000",
      .str_error             = "A table must have at least 1 column",
      .str_user_error        = "A table must have at least 1 column",
      .oracle_errno          = 54037,
      .oracle_str_error      = "ORA-54037: table must have at least 1 column that is not virtual",
      .oracle_str_user_error = "ORA-54037: table must have at least 1 column that is not virtual"
};
static const _error _error_OB_ERR_ONLY_PURE_FUNC_CANBE_INDEXED = {
      .error_name            = "OB_ERR_ONLY_PURE_FUNC_CANBE_INDEXED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_FUNCTIONAL_INDEX_FUNCTION_IS_NOT_ALLOWED,
      .sqlstate              = "HY000",
      .str_error             = "Expression of functional index contains a disallowed function.",
      .str_user_error        = "Expression of functional index contains a disallowed function.",
      .oracle_errno          = 1743,
      .oracle_str_error      = "ORA-01743: only pure functions can be indexed",
      .oracle_str_user_error = "ORA-01743: only pure functions can be indexed"
};
static const _error _error_OB_ERR_ONLY_PURE_FUNC_CANBE_VIRTUAL_COLUMN_EXPRESSION = {
      .error_name            = "OB_ERR_ONLY_PURE_FUNC_CANBE_VIRTUAL_COLUMN_EXPRESSION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 3102,
      .sqlstate              = "HY000",
      .str_error             = "Expression of generated column contains a disallowed function",
      .str_user_error        = "Expression of generated column contains a disallowed function",
      .oracle_errno          = 54002,
      .oracle_str_error      = "ORA-54002: only pure functions can be specified in a virtual column expression",
      .oracle_str_user_error = "ORA-54002: only pure functions can be specified in a virtual column expression"
};
static const _error _error_OB_ERR_UPDATE_OPERATION_ON_VIRTUAL_COLUMNS = {
      .error_name            = "OB_ERR_UPDATE_OPERATION_ON_VIRTUAL_COLUMNS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "UPDATE operation disallowed on virtual columns",
      .str_user_error        = "UPDATE operation disallowed on virtual columns",
      .oracle_errno          = 54017,
      .oracle_str_error      = "ORA-54017: UPDATE operation disallowed on virtual columns",
      .oracle_str_user_error = "ORA-54017: UPDATE operation disallowed on virtual columns"
};
static const _error _error_OB_ERR_INVALID_COLUMN_EXPRESSION = {
      .error_name            = "OB_ERR_INVALID_COLUMN_EXPRESSION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid column expression was specified",
      .str_user_error        = "Invalid column expression was specified",
      .oracle_errno          = 54016,
      .oracle_str_error      = "ORA-54016: Invalid column expression was specified",
      .oracle_str_user_error = "ORA-54016: Invalid column expression was specified"
};
static const _error _error_OB_ERR_IDENTITY_COLUMN_COUNT_EXCE_LIMIT = {
      .error_name            = "OB_ERR_IDENTITY_COLUMN_COUNT_EXCE_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "table can have only one identity column",
      .str_user_error        = "table can have only one identity column",
      .oracle_errno          = 30669,
      .oracle_str_error      = "ORA-30669: table can have only one identity column",
      .oracle_str_user_error = "ORA-30669: table can have only one identity column"
};
static const _error _error_OB_ERR_INVALID_NOT_NULL_CONSTRAINT_ON_IDENTITY_COLUMN = {
      .error_name            = "OB_ERR_INVALID_NOT_NULL_CONSTRAINT_ON_IDENTITY_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid NOT NULL constraint specified on an identity column",
      .str_user_error        = "invalid NOT NULL constraint specified on an identity column",
      .oracle_errno          = 30670,
      .oracle_str_error      = "ORA-30670: invalid NOT NULL constraint specified on an identity column",
      .oracle_str_user_error = "ORA-30670: invalid NOT NULL constraint specified on an identity column"
};
static const _error _error_OB_ERR_CANNOT_MODIFY_NOT_NULL_CONSTRAINT_ON_IDENTITY_COLUMN = {
      .error_name            = "OB_ERR_CANNOT_MODIFY_NOT_NULL_CONSTRAINT_ON_IDENTITY_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot modify NOT NULL constraint on an identity column",
      .str_user_error        = "cannot modify NOT NULL constraint on an identity column",
      .oracle_errno          = 30671,
      .oracle_str_error      = "ORA-30671: cannot modify NOT NULL constraint on an identity column",
      .oracle_str_user_error = "ORA-30671: cannot modify NOT NULL constraint on an identity column"
};
static const _error _error_OB_ERR_CANNOT_DROP_NOT_NULL_CONSTRAINT_ON_IDENTITY_COLUMN = {
      .error_name            = "OB_ERR_CANNOT_DROP_NOT_NULL_CONSTRAINT_ON_IDENTITY_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot drop NOT NULL constraint on an identity column",
      .str_user_error        = "cannot drop NOT NULL constraint on an identity column",
      .oracle_errno          = 30672,
      .oracle_str_error      = "ORA-30672: cannot drop NOT NULL constraint on an identity column",
      .oracle_str_user_error = "ORA-30672: cannot drop NOT NULL constraint on an identity column"
};
static const _error _error_OB_ERR_COLUMN_MODIFY_TO_IDENTITY_COLUMN = {
      .error_name            = "OB_ERR_COLUMN_MODIFY_TO_IDENTITY_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "column to be modified is not an identity column",
      .str_user_error        = "column to be modified is not an identity column",
      .oracle_errno          = 30673,
      .oracle_str_error      = "ORA-30673: column to be modified is not an identity column",
      .oracle_str_user_error = "ORA-30673: column to be modified is not an identity column"
};
static const _error _error_OB_ERR_IDENTITY_COLUMN_CANNOT_HAVE_DEFAULT_VALUE = {
      .error_name            = "OB_ERR_IDENTITY_COLUMN_CANNOT_HAVE_DEFAULT_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "identity column cannot have a default value",
      .str_user_error        = "identity column cannot have a default value",
      .oracle_errno          = 30674,
      .oracle_str_error      = "ORA-30674: identity column cannot have a default value",
      .oracle_str_user_error = "ORA-30674: identity column cannot have a default value"
};
static const _error _error_OB_ERR_IDENTITY_COLUMN_MUST_BE_NUMERIC_TYPE = {
      .error_name            = "OB_ERR_IDENTITY_COLUMN_MUST_BE_NUMERIC_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "identity column must be a numeric type",
      .str_user_error        = "identity column must be a numeric type",
      .oracle_errno          = 30675,
      .oracle_str_error      = "ORA-30675: identity column must be a numeric type",
      .oracle_str_user_error = "ORA-30675: identity column must be a numeric type"
};
static const _error _error_OB_ERR_PREBUILT_TABLE_MANAGED_CANNOT_BE_IDENTITY_COLUMN = {
      .error_name            = "OB_ERR_PREBUILT_TABLE_MANAGED_CANNOT_BE_IDENTITY_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "prebuilt table managed column cannot be an identity column",
      .str_user_error        = "prebuilt table managed column cannot be an identity column",
      .oracle_errno          = 32792,
      .oracle_str_error      = "ORA-32792: prebuilt table managed column cannot be an identity column",
      .oracle_str_user_error = "ORA-32792: prebuilt table managed column cannot be an identity column"
};
static const _error _error_OB_ERR_CANNOT_ALTER_SYSTEM_GENERATED_SEQUENCE = {
      .error_name            = "OB_ERR_CANNOT_ALTER_SYSTEM_GENERATED_SEQUENCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot alter a system-generated sequence",
      .str_user_error        = "cannot alter a system-generated sequence",
      .oracle_errno          = 32793,
      .oracle_str_error      = "ORA-32793: cannot alter a system-generated sequence",
      .oracle_str_user_error = "ORA-32793: cannot alter a system-generated sequence"
};
static const _error _error_OB_ERR_CANNOT_DROP_SYSTEM_GENERATED_SEQUENCE = {
      .error_name            = "OB_ERR_CANNOT_DROP_SYSTEM_GENERATED_SEQUENCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot drop a system-generated sequence",
      .str_user_error        = "cannot drop a system-generated sequence",
      .oracle_errno          = 32794,
      .oracle_str_error      = "ORA-32794: cannot drop a system-generated sequence",
      .oracle_str_user_error = "ORA-32794: cannot drop a system-generated sequence"
};
static const _error _error_OB_ERR_INSERT_INTO_GENERATED_ALWAYS_IDENTITY_COLUMN = {
      .error_name            = "OB_ERR_INSERT_INTO_GENERATED_ALWAYS_IDENTITY_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot insert into a generated always identity column",
      .str_user_error        = "cannot insert into a generated always identity column",
      .oracle_errno          = 32795,
      .oracle_str_error      = "ORA-32795: cannot insert into a generated always identity column",
      .oracle_str_user_error = "ORA-32795: cannot insert into a generated always identity column"
};
static const _error _error_OB_ERR_UPDATE_GENERATED_ALWAYS_IDENTITY_COLUMN = {
      .error_name            = "OB_ERR_UPDATE_GENERATED_ALWAYS_IDENTITY_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot update a generated always identity column",
      .str_user_error        = "cannot update a generated always identity column",
      .oracle_errno          = 32796,
      .oracle_str_error      = "ORA-32796: cannot update a generated always identity column",
      .oracle_str_user_error = "ORA-32796: cannot update a generated always identity column"
};
static const _error _error_OB_ERR_IDENTITY_COLUMN_SEQUENCE_MISMATCH_ALTER_TABLE_EXCHANGE_PARTITION = {
      .error_name            = "OB_ERR_IDENTITY_COLUMN_SEQUENCE_MISMATCH_ALTER_TABLE_EXCHANGE_PARTITION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "identity column sequence mismatch in ALTER TABLE EXCHANGE PARTITION",
      .str_user_error        = "identity column sequence mismatch in ALTER TABLE EXCHANGE PARTITION",
      .oracle_errno          = 32797,
      .oracle_str_error      = "ORA-32797: identity column sequence mismatch in ALTER TABLE EXCHANGE PARTITION",
      .oracle_str_user_error = "ORA-32797: identity column sequence mismatch in ALTER TABLE EXCHANGE PARTITION"
};
static const _error _error_OB_ERR_CANNOT_RENAME_SYSTEM_GENERATED_SEQUENCE = {
      .error_name            = "OB_ERR_CANNOT_RENAME_SYSTEM_GENERATED_SEQUENCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot rename a system-generated sequence",
      .str_user_error        = "cannot rename a system-generated sequence",
      .oracle_errno          = 32799,
      .oracle_str_error      = "ORA-32799: cannot rename a system-generated sequence",
      .oracle_str_user_error = "ORA-32799: cannot rename a system-generated sequence"
};
static const _error _error_OB_ERR_REVOKE_BY_COLUMN = {
      .error_name            = "OB_ERR_REVOKE_BY_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "UPDATE/REFERENCES may only be REVOKEd from the whole table, not by column",
      .str_user_error        = "UPDATE/REFERENCES may only be REVOKEd from the whole table, not by column",
      .oracle_errno          = 1750,
      .oracle_str_error      = "ORA-01750: UPDATE/REFERENCES may only be REVOKEd from the whole table, not by column",
      .oracle_str_user_error = "ORA-01750: UPDATE/REFERENCES may only be REVOKEd from the whole table, not by column"
};
static const _error _error_OB_ERR_TYPE_BODY_NOT_EXIST = {
      .error_name            = "OB_ERR_TYPE_BODY_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not executed, type body does not exist",
      .str_user_error        = "not executed, type body '%.*s' does not exist",
      .oracle_errno          = 4067,
      .oracle_str_error      = "ORA-04067: not executed, type body does not exist",
      .oracle_str_user_error = "ORA-04067: not executed, type body '%.*s' does not exist"
};
static const _error _error_OB_ERR_INVALID_ARGUMENT_FOR_WIDTH_BUCKET = {
      .error_name            = "OB_ERR_INVALID_ARGUMENT_FOR_WIDTH_BUCKET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The argument of WIDTH_BUCKET function is NULL or invalid.",
      .str_user_error        = "The argument [%s] of WIDTH_BUCKET function is NULL or invalid.",
      .oracle_errno          = 30494,
      .oracle_str_error      = "ORA-30494: The argument of WIDTH_BUCKET function is NULL or invalid.",
      .oracle_str_user_error = "ORA-30494: The argument [%s] of WIDTH_BUCKET function is NULL or invalid."
};
static const _error _error_OB_ERR_CBY_NO_MEMORY = {
      .error_name            = "OB_ERR_CBY_NO_MEMORY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Not enough memory for CONNECT BY operation",
      .str_user_error        = "Not enough memory for CONNECT BY operation",
      .oracle_errno          = 30009,
      .oracle_str_error      = "ORA-30009: Not enough memory for CONNECT BY operation",
      .oracle_str_user_error = "ORA-30009: Not enough memory for CONNECT BY operation"
};
static const _error _error_OB_ERR_ILLEGAL_PARAM_FOR_CBY_PATH = {
      .error_name            = "OB_ERR_ILLEGAL_PARAM_FOR_CBY_PATH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "illegal parameter in SYS_CONNECT_BY_PATH function",
      .str_user_error        = "illegal parameter in SYS_CONNECT_BY_PATH function",
      .oracle_errno          = 30003,
      .oracle_str_error      = "ORA-30003: illegal parameter in SYS_CONNECT_BY_PATH function",
      .oracle_str_user_error = "ORA-30003: illegal parameter in SYS_CONNECT_BY_PATH function"
};
static const _error _error_OB_ERR_HOST_UNKNOWN = {
      .error_name            = "OB_ERR_HOST_UNKNOWN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "host unknown",
      .str_user_error        = "host %.*s unknown",
      .oracle_errno          = 29257,
      .oracle_str_error      = "ORA-29257: host unknown",
      .oracle_str_user_error = "ORA-29257: host %.*s unknown"
};
static const _error _error_OB_ERR_WINDOW_NAME_IS_NOT_DEFINE = {
      .error_name            = "OB_ERR_WINDOW_NAME_IS_NOT_DEFINE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Window name is not defined.",
      .str_user_error        = "Window name '%.*s' is not defined.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5929, Window name is not defined.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5929, Window name '%.*s' is not defined."
};
static const _error _error_OB_ERR_OPEN_CURSORS_EXCEEDED = {
      .error_name            = "OB_ERR_OPEN_CURSORS_EXCEEDED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "maximum open cursors exceeded",
      .str_user_error        = "maximum open cursors exceeded",
      .oracle_errno          = 1000,
      .oracle_str_error      = "ORA-01000: maximum open cursors exceeded",
      .oracle_str_user_error = "ORA-01000: maximum open cursors exceeded"
};
static const _error _error_OB_ERR_FETCH_OUT_SEQUENCE = {
      .error_name            = "OB_ERR_FETCH_OUT_SEQUENCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "fetch out of sequence",
      .str_user_error        = "fetch out of sequence",
      .oracle_errno          = 1002,
      .oracle_str_error      = "ORA-01002: fetch out of sequence",
      .oracle_str_user_error = "ORA-01002: fetch out of sequence"
};
static const _error _error_OB_ERR_UNEXPECTED_NAME_STR = {
      .error_name            = "OB_ERR_UNEXPECTED_NAME_STR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unexpected name string",
      .str_user_error        = "unexpected name string '%.*s'",
      .oracle_errno          = 23481,
      .oracle_str_error      = "ORA-23481: unexpected name string",
      .oracle_str_user_error = "ORA-23481: unexpected name string '%.*s'"
};
static const _error _error_OB_ERR_NO_PROGRAM_UNIT = {
      .error_name            = "OB_ERR_NO_PROGRAM_UNIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "PL/SQL: could not find program unit being called",
      .str_user_error        = "PL/SQL: could not find program unit being called: '%.*s'",
      .oracle_errno          = 6508,
      .oracle_str_error      = "ORA-06508: PL/SQL: could not find program unit being called",
      .oracle_str_user_error = "ORA-06508: PL/SQL: could not find program unit being called: '%.*s'"
};
static const _error _error_OB_ERR_ARG_INVALID = {
      .error_name            = "OB_ERR_ARG_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "argument is null, invalid, or out of range",
      .str_user_error        = "argument is null, invalid, or out of range",
      .oracle_errno          = 21560,
      .oracle_str_error      = "ORA-21560: argument %.*s is null, invalid, or out of range",
      .oracle_str_user_error = "ORA-21560: argument %.*s is null, invalid, or out of range"
};
static const _error _error_OB_ERR_DBMS_STATS_PL = {
      .error_name            = "OB_ERR_DBMS_STATS_PL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "must use LOG_USER_ERROR",
      .str_user_error        = "%s",
      .oracle_errno          = 20001,
      .oracle_str_error      = "ORA-20001: must use LOG_USER_ERROR",
      .oracle_str_user_error = "ORA-20001: %s"
};
static const _error _error_OB_ERR_INCORRECT_VALUE_FOR_FUNCTION = {
      .error_name            = "OB_ERR_INCORRECT_VALUE_FOR_FUNCTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_VALUE_FOR_TYPE,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect value for function",
      .str_user_error        = "Incorrect %.*s value: '%.*s' for function %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5936, Incorrect value for function",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5936, Incorrect %.*s value: '%.*s' for function %.*s"
};
static const _error _error_OB_ERR_UNSUPPORTED_CHARACTER_SET = {
      .error_name            = "OB_ERR_UNSUPPORTED_CHARACTER_SET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unsupported character set",
      .str_user_error        = "unsupported character set",
      .oracle_errno          = 1482,
      .oracle_str_error      = "ORA-01482: unsupported character set",
      .oracle_str_user_error = "ORA-01482: unsupported character set"
};
static const _error _error_OB_ERR_MUST_BE_FOLLOWED_BY_FOUR_HEXADECIMAL_CHARACTERS_OR_ANOTHER = {
      .error_name            = "OB_ERR_MUST_BE_FOLLOWED_BY_FOUR_HEXADECIMAL_CHARACTERS_OR_ANOTHER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "'\\' must be followed by four hexadecimal characters or another '\\'",
      .str_user_error        = "'\\' must be followed by four hexadecimal characters or another '\\'",
      .oracle_errno          = 30186,
      .oracle_str_error      = "ORA-30186: '\\' must be followed by four hexadecimal characters or another '\\'",
      .oracle_str_user_error = "ORA-30186: '\\' must be followed by four hexadecimal characters or another '\\'"
};
static const _error _error_OB_ERR_PARAMETER_TOO_LONG = {
      .error_name            = "OB_ERR_PARAMETER_TOO_LONG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "parameter value longer than maximum characters",
      .str_user_error        = "parameter value longer than %d characters",
      .oracle_errno          = 32021,
      .oracle_str_error      = "ORA-32021: parameter value longer than maximum characters",
      .oracle_str_user_error = "ORA-32021: parameter value longer than %d characters"
};
static const _error _error_OB_ERR_INVALID_PLSQL_CCFLAGS = {
      .error_name            = "OB_ERR_INVALID_PLSQL_CCFLAGS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid parameter for PLSQL_CCFLAGS",
      .str_user_error        = "invalid parameter for PLSQL_CCFLAGS",
      .oracle_errno          = 39962,
      .oracle_str_error      = "ORA-39962: invalid parameter for PLSQL_CCFLAGS",
      .oracle_str_user_error = "ORA-39962: invalid parameter for PLSQL_CCFLAGS"
};
static const _error _error_OB_ERR_REF_MUTUALLY_DEP = {
      .error_name            = "OB_ERR_REF_MUTUALLY_DEP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Aborted: formed a non-REF mutually-dependent cycle",
      .str_user_error        = "Aborted: '%.*s' formed a non-REF mutually-dependent cycle with '%.*s'",
      .oracle_errno          = 4055,
      .oracle_str_error      = "ORA-04055: Aborted: formed a non-REF mutually-dependent cycle",
      .oracle_str_user_error = "ORA-04055: Aborted: '%.*s' formed a non-REF mutually-dependent cycle with '%.*s'"
};
static const _error _error_OB_ERR_COLUMN_NOT_ALLOWED = {
      .error_name            = "OB_ERR_COLUMN_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "column not allowed here",
      .str_user_error        = "column not allowed here",
      .oracle_errno          = 984,
      .oracle_str_error      = "ORA-00984: column not allowed here",
      .oracle_str_user_error = "ORA-00984: column not allowed here"
};
static const _error _error_OB_ERR_CANNOT_ACCESS_NLS_DATA_FILES_OR_INVALID_ENVIRONMENT_SPECIFIED = {
      .error_name            = "OB_ERR_CANNOT_ACCESS_NLS_DATA_FILES_OR_INVALID_ENVIRONMENT_SPECIFIED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Cannot access NLS data files or invalid environment specified",
      .str_user_error        = "Cannot access NLS data files or invalid environment specified",
      .oracle_errno          = 12705,
      .oracle_str_error      = "ORA-12705: Cannot access NLS data files or invalid environment specified",
      .oracle_str_user_error = "ORA-12705: Cannot access NLS data files or invalid environment specified"
};
static const _error _error_OB_ERR_DUPLICATE_NULL_SPECIFICATION = {
      .error_name            = "OB_ERR_DUPLICATE_NULL_SPECIFICATION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate or conflicting NULL and/or NOT NULL specifications",
      .str_user_error        = "duplicate or conflicting NULL and/or NOT NULL specifications",
      .oracle_errno          = 2258,
      .oracle_str_error      = "ORA-02258: duplicate or conflicting NULL and/or NOT NULL specifications",
      .oracle_str_user_error = "ORA-02258: duplicate or conflicting NULL and/or NOT NULL specifications"
};
static const _error _error_OB_ERR_NOT_NULL_CONSTRAINT_VIOLATED = {
      .error_name            = "OB_ERR_NOT_NULL_CONSTRAINT_VIOLATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot enable not null constraint - null values found",
      .str_user_error        = "cannot enable (%.*s.%.*s) - null values found",
      .oracle_errno          = 2296,
      .oracle_str_error      = "ORA-02296: cannot enable not null constraint - null values found",
      .oracle_str_user_error = "ORA-02296: cannot enable (%.*s.%.*s) - null values found"
};
static const _error _error_OB_ERR_TABLE_ADD_NOT_NULL_COLUMN_NOT_EMPTY = {
      .error_name            = "OB_ERR_TABLE_ADD_NOT_NULL_COLUMN_NOT_EMPTY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "table must be empty to add mandatory (NOT NULL) column",
      .str_user_error        = "table must be empty to add mandatory (NOT NULL) column",
      .oracle_errno          = 1758,
      .oracle_str_error      = "ORA-01758: table must be empty to add mandatory (NOT NULL) column",
      .oracle_str_user_error = "ORA-01758: table must be empty to add mandatory (NOT NULL) column"
};
static const _error _error_OB_ERR_COLUMN_EXPRESSION_MODIFICATION_WITH_OTHER_DDL = {
      .error_name            = "OB_ERR_COLUMN_EXPRESSION_MODIFICATION_WITH_OTHER_DDL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Column expression modifications cannot be combined with any other column DDL operation",
      .str_user_error        = "Column expression modifications cannot be combined with any other column DDL operation",
      .oracle_errno          = 54048,
      .oracle_str_error      = "ORA-54048: Column expression modifications cannot be combined with any other column DDL operation",
      .oracle_str_user_error = "ORA-54048: Column expression modifications cannot be combined with any other column DDL operation"
};
static const _error _error_OB_ERR_VIRTUAL_COL_WITH_CONSTRAINT_CANT_BE_CHANGED = {
      .error_name            = "OB_ERR_VIRTUAL_COL_WITH_CONSTRAINT_CANT_BE_CHANGED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Virtual column expression cannot be changed because a constraint is defined on column",
      .str_user_error        = "Virtual column expression cannot be changed because a constraint is defined on column",
      .oracle_errno          = 54023,
      .oracle_str_error      = "ORA-54023: Virtual column expression cannot be changed because a constraint is defined on column",
      .oracle_str_user_error = "ORA-54023: Virtual column expression cannot be changed because a constraint is defined on column"
};
static const _error _error_OB_ERR_INVALID_NOT_NULL_CONSTRAINT_ON_DEFAULT_ON_NULL_IDENTITY_COLUMN = {
      .error_name            = "OB_ERR_INVALID_NOT_NULL_CONSTRAINT_ON_DEFAULT_ON_NULL_IDENTITY_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid NOT NULL constraint specified on a DEFAULT ON NULL column",
      .str_user_error        = "invalid NOT NULL constraint specified on a DEFAULT ON NULL column",
      .oracle_errno          = 30665,
      .oracle_str_error      = "ORA-30665: invalid NOT NULL constraint specified on a DEFAULT ON NULL column",
      .oracle_str_user_error = "ORA-30665: invalid NOT NULL constraint specified on a DEFAULT ON NULL column"
};
static const _error _error_OB_ERR_INVALID_DATA_TYPE_FOR_AT_TIME_ZONE = {
      .error_name            = "OB_ERR_INVALID_DATA_TYPE_FOR_AT_TIME_ZONE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid data type for datetime primary with time zone modifier",
      .str_user_error        = "invalid data type for datetime primary with time zone modifier",
      .oracle_errno          = 30084,
      .oracle_str_error      = "ORA-30084: invalid data type for datetime primary with time zone modifier",
      .oracle_str_user_error = "ORA-30084: invalid data type for datetime primary with time zone modifier"
};
static const _error _error_OB_ERR_BAD_ARG = {
      .error_name            = "OB_ERR_BAD_ARG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "bad argument",
      .str_user_error        = "bad argument",
      .oracle_errno          = 29261,
      .oracle_str_error      = "ORA-29261: bad argument",
      .oracle_str_user_error = "ORA-29261: bad argument"
};
static const _error _error_OB_ERR_CANNOT_MODIFY_NOT_NULL_CONSTRAINT_ON_DEFAULT_ON_NULL_COLUMN = {
      .error_name            = "OB_ERR_CANNOT_MODIFY_NOT_NULL_CONSTRAINT_ON_DEFAULT_ON_NULL_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot modify NOT NULL constraint on a DEFAULT ON NULL column",
      .str_user_error        = "cannot modify NOT NULL constraint on a DEFAULT ON NULL column",
      .oracle_errno          = 30666,
      .oracle_str_error      = "ORA-30666: cannot modify NOT NULL constraint on a DEFAULT ON NULL column",
      .oracle_str_user_error = "ORA-30666: cannot modify NOT NULL constraint on a DEFAULT ON NULL column"
};
static const _error _error_OB_ERR_CANNOT_DROP_NOT_NULL_CONSTRAINT_ON_DEFAULT_ON_NULL_COLUMN = {
      .error_name            = "OB_ERR_CANNOT_DROP_NOT_NULL_CONSTRAINT_ON_DEFAULT_ON_NULL_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot drop NOT NULL constraint on a DEFAULT ON NULL column",
      .str_user_error        = "cannot drop NOT NULL constraint on a DEFAULT ON NULL column",
      .oracle_errno          = 30667,
      .oracle_str_error      = "ORA-30667: cannot drop NOT NULL constraint on a DEFAULT ON NULL column",
      .oracle_str_user_error = "ORA-30667: cannot drop NOT NULL constraint on a DEFAULT ON NULL column"
};
static const _error _error_OB_ERR_INVALID_PATH = {
      .error_name            = "OB_ERR_INVALID_PATH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "file or LOB operation string failed",
      .str_user_error        = "file or LOB operation string failed",
      .oracle_errno          = 22288,
      .oracle_str_error      = "ORA-22288: file or LOB operation string failed",
      .oracle_str_user_error = "ORA-22288: file or LOB operation string failed"
};
static const _error _error_OB_ERR_INVALID_PARAM_ENCOUNTERED = {
      .error_name            = "OB_ERR_INVALID_PARAM_ENCOUNTERED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid parameter encountered in method string",
      .str_user_error        = "invalid parameter encountered in method %s",
      .oracle_errno          = 22369,
      .oracle_str_error      = "ORA-22369: invalid parameter encountered in method string",
      .oracle_str_user_error = "ORA-22369: invalid parameter encountered in method %s"
};
static const _error _error_OB_ERR_INCORRECT_METHOD_USAGE = {
      .error_name            = "OB_ERR_INCORRECT_METHOD_USAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "incorrect usage of method string",
      .str_user_error        = "incorrect usage of method %s",
      .oracle_errno          = 22370,
      .oracle_str_error      = "ORA-22370: incorrect usage of method string",
      .oracle_str_user_error = "ORA-22370: incorrect usage of method %s"
};
static const _error _error_OB_ERR_TYPE_MISMATCH = {
      .error_name            = "OB_ERR_TYPE_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Type Mismatch while constructing or accessing OCIAnyData",
      .str_user_error        = "Type Mismatch while constructing or accessing OCIAnyData",
      .oracle_errno          = 22626,
      .oracle_str_error      = "ORA-22626: Type Mismatch while constructing or accessing OCIAnyData",
      .oracle_str_user_error = "ORA-22626: Type Mismatch while constructing or accessing OCIAnyData"
};
static const _error _error_OB_ERR_FETCH_COLUMN_NULL = {
      .error_name            = "OB_ERR_FETCH_COLUMN_NULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "fetched column value is NULL",
      .str_user_error        = "fetched column value is NULL",
      .oracle_errno          = 1405,
      .oracle_str_error      = "ORA-01405: fetched column value is NULL",
      .oracle_str_user_error = "ORA-01405: fetched column value is NULL"
};
static const _error _error_OB_ERR_INVALID_SIZE_SPECIFIED = {
      .error_name            = "OB_ERR_INVALID_SIZE_SPECIFIED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid SIZE specified",
      .str_user_error        = "invalid SIZE specified",
      .oracle_errno          = 1494,
      .oracle_str_error      = "ORA-01494: invalid SIZE specified",
      .oracle_str_user_error = "ORA-01494: invalid SIZE specified"
};
static const _error _error_OB_ERR_SOURCE_EMPTY = {
      .error_name            = "OB_ERR_SOURCE_EMPTY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "source text is empty",
      .str_user_error        = "source text is empty",
      .oracle_errno          = 24236,
      .oracle_str_error      = "ORA-24236: source text is empty",
      .oracle_str_user_error = "ORA-24236: source text is empty"
};
static const _error _error_OB_ERR_BAD_VALUE_FOR_OBJECT_TYPE = {
      .error_name            = "OB_ERR_BAD_VALUE_FOR_OBJECT_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "bad value for object type: string",
      .str_user_error        = "bad value for object type: %.*s",
      .oracle_errno          = 24235,
      .oracle_str_error      = "ORA-24235: bad value for object type: string",
      .oracle_str_user_error = "ORA-24235: bad value for object type: %.*s"
};
static const _error _error_OB_ERR_UNABLE_GET_SOURCE = {
      .error_name            = "OB_ERR_UNABLE_GET_SOURCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unable to get source of string \'string\'.\'string\', insufficient privileges or does not exist",
      .str_user_error        = "unable to get source of string \'%.*s\'.\'%.*s\', insufficient privileges or does not exist",
      .oracle_errno          = 24234,
      .oracle_str_error      = "ORA-24234: unable to get source of string \'string\'.\'string\', insufficient privileges or does not exist",
      .oracle_str_user_error = "ORA-24234: unable to get source of string \'%.*s\'.\'%.*s\', insufficient privileges or does not exist"
};
static const _error _error_OB_ERR_MISSING_IDENTIFIER = {
      .error_name            = "OB_ERR_MISSING_IDENTIFIER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "missing identifier",
      .str_user_error        = "missing identifier",
      .oracle_errno          = 931,
      .oracle_str_error      = "ORA-00931: missing identifier",
      .oracle_str_user_error = "ORA-00931: missing identifier"
};
static const _error _error_OB_ERR_DUP_COMPILE_PARAM = {
      .error_name            = "OB_ERR_DUP_COMPILE_PARAM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate setting for PL/SQL compiler parameter string",
      .str_user_error        = "duplicate setting for PL/SQL compiler parameter %.*s",
      .oracle_errno          = 39956,
      .oracle_str_error      = "ORA-39956: duplicate setting for PL/SQL compiler parameter string",
      .oracle_str_user_error = "ORA-39956: duplicate setting for PL/SQL compiler parameter %.*s"
};
static const _error _error_OB_ERR_DATA_NOT_WELL_FORMAT = {
      .error_name            = "OB_ERR_DATA_NOT_WELL_FORMAT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "OCIAnyData is not well-formed",
      .str_user_error        = "OCIAnyData is not well-formed",
      .oracle_errno          = 22625,
      .oracle_str_error      = "ORA-22625: OCIAnyData is not well-formed",
      .oracle_str_user_error = "ORA-22625: OCIAnyData is not well-formed"
};
static const _error _error_OB_ERR_MUST_COMPOSIT_TYPE = {
      .error_name            = "OB_ERR_MUST_COMPOSIT_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "tc [string] must be that of object/varray/nested table",
      .str_user_error        = "tc [%s] must be that of object/varray/nested table",
      .oracle_errno          = 22627,
      .oracle_str_error      = "ORA-22627: tc [string] must be that of object/varray/nested table",
      .oracle_str_user_error = "ORA-22627: tc [%s] must be that of object/varray/nested table"
};
static const _error _error_OB_ERR_USER_EXCEED_RESOURCE = {
      .error_name            = "OB_ERR_USER_EXCEED_RESOURCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 1226,
      .sqlstate              = "42000",
      .str_error             = "User has exceeded the resource",
      .str_user_error        = "User '%.*s' has exceeded the '%s' resource (current value: %lu)",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5967, User has exceeded the resource",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5967, User '%.*s' has exceeded the '%s' resource (current value: %lu)"
};
static const _error _error_OB_ERR_UTL_ENCODE_ARGUMENT_INVALID = {
      .error_name            = "OB_ERR_UTL_ENCODE_ARGUMENT_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "bad argument",
      .str_user_error        = "bad argument",
      .oracle_errno          = 29261,
      .oracle_str_error      = "ORA-29261: bad argument",
      .oracle_str_user_error = "ORA-29261: bad argument"
};
static const _error _error_OB_ERR_UTL_ENCODE_CHARSET_INVALID = {
      .error_name            = "OB_ERR_UTL_ENCODE_CHARSET_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid Character set",
      .str_user_error        = "invalid Character set",
      .oracle_errno          = 30205,
      .oracle_str_error      = "ORA-30205: invalid Character set",
      .oracle_str_user_error = "ORA-30205: invalid Character set"
};
static const _error _error_OB_ERR_UTL_ENCODE_MIME_HEAD_TAG = {
      .error_name            = "OB_ERR_UTL_ENCODE_MIME_HEAD_TAG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid mime header tag",
      .str_user_error        = "invalid mime header tag",
      .oracle_errno          = 29295,
      .oracle_str_error      = "ORA-29295: invalid mime header tag",
      .oracle_str_user_error = "ORA-29295: invalid mime header tag"
};
static const _error _error_OB_ERR_CHECK_OPTION_VIOLATED = {
      .error_name            = "OB_ERR_CHECK_OPTION_VIOLATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_VIEW_CHECK_FAILED,
      .sqlstate              = "HY000",
      .str_error             = "CHECK OPTION failed",
      .str_user_error        = "CHECK OPTION failed '%.*s.%.*s'",
      .oracle_errno          = 1402,
      .oracle_str_error      = "ORA-01402: view WITH CHECK OPTION where-clause violation",
      .oracle_str_user_error = "ORA-01402: view WITH CHECK OPTION where-clause violation"
};
static const _error _error_OB_ERR_CHECK_OPTION_ON_NONUPDATABLE_VIEW = {
      .error_name            = "OB_ERR_CHECK_OPTION_ON_NONUPDATABLE_VIEW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_VIEW_NONUPD_CHECK,
      .sqlstate              = "HY000",
      .str_error             = "CHECK OPTION on non-updatable view",
      .str_user_error        = "CHECK OPTION on non-updatable view '%.*s.%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5972, CHECK OPTION on non-updatable view",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5972, CHECK OPTION on non-updatable view '%.*s.%.*s'"
};
static const _error _error_OB_ERR_NO_DESC_FOR_POS = {
      .error_name            = "OB_ERR_NO_DESC_FOR_POS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no descriptor for this position",
      .str_user_error        = "no descriptor for this position",
      .oracle_errno          = 24334,
      .oracle_str_error      = "ORA-24334: no descriptor for this position",
      .oracle_str_user_error = "ORA-24334: no descriptor for this position"
};
static const _error _error_OB_ERR_ILL_OBJ_FLAG = {
      .error_name            = "OB_ERR_ILL_OBJ_FLAG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "object specified is incompatible with the flag specified",
      .str_user_error        = "object specified is incompatible with the flag specified",
      .oracle_errno          = 4047,
      .oracle_str_error      = "ORA-04047: object specified is incompatible with the flag specified",
      .oracle_str_user_error = "ORA-04047: object specified is incompatible with the flag specified"
};
static const _error _error_OB_ERR_DBLINK_REMOTE_ECODE = {
      .error_name            = "OB_ERR_DBLINK_REMOTE_ECODE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "\ndblink remote error code: %d,\nremote error msg: %.*s",
      .str_user_error        = "\ndblink remote error code: %d,\nremote error msg: %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5975, \ndblink remote error code: %d,\nremote error msg: %.*s",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5975, \ndblink remote error code: %d,\nremote error msg: %.*s"
};
static const _error _error_OB_ERR_DBLINK_NO_LIB = {
      .error_name            = "OB_ERR_DBLINK_NO_LIB",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "can not find the expected version of OCI LIB: %.*s",
      .str_user_error        = "can not find the expected version of OCI LIB: %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5976, can not find the expected version of OCI LIB: %.*s",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5976, can not find the expected version of OCI LIB: %.*s"
};
static const _error _error_OB_ERR_PARTITION_EXTENDED_ON_VIEW = {
      .error_name            = "OB_ERR_PARTITION_EXTENDED_ON_VIEW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "partition-extended object names may only be used with tables and editioning views",
      .str_user_error        = "partition-extended object names may only be used with tables and editioning views",
      .oracle_errno          = 14109,
      .oracle_str_error      = "ORA-14109: partition-extended object names may only be used with tables and editioning views",
      .oracle_str_user_error = "ORA-14109: partition-extended object names may only be used with tables and editioning views"
};
static const _error _error_OB_ERR_NOT_ALL_VARIABLE_BIND = {
      .error_name            = "OB_ERR_NOT_ALL_VARIABLE_BIND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not all variables bound",
      .str_user_error        = "not all variables bound",
      .oracle_errno          = 1008,
      .oracle_str_error      = "ORA-01008: not all variables bound",
      .oracle_str_user_error = "ORA-01008: not all variables bound"
};
static const _error _error_OB_ERR_BIND_VARIABLE_NOT_EXIST = {
      .error_name            = "OB_ERR_BIND_VARIABLE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "bind variable does not exist",
      .str_user_error        = "bind variable does not exist",
      .oracle_errno          = 1006,
      .oracle_str_error      = "ORA-01006: bind variable does not exist",
      .oracle_str_user_error = "ORA-01006: bind variable does not exist"
};
static const _error _error_OB_ERR_NOT_VALID_ROUTINE_NAME = {
      .error_name            = "OB_ERR_NOT_VALID_ROUTINE_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not a valid function or procedure name",
      .str_user_error        = "not a valid function or procedure name",
      .oracle_errno          = 6576,
      .oracle_str_error      = "ORA-06576: not a valid function or procedure name",
      .oracle_str_user_error = "ORA-06576: not a valid function or procedure name"
};
static const _error _error_OB_ERR_DDL_IN_ILLEGAL_CONTEXT = {
      .error_name            = "OB_ERR_DDL_IN_ILLEGAL_CONTEXT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "DDL statement is executed in an illegal context",
      .str_user_error        = "DDL statement is executed in an illegal context",
      .oracle_errno          = 6546,
      .oracle_str_error      = "ORA-06546: DDL statement is executed in an illegal context",
      .oracle_str_user_error = "ORA-06546: DDL statement is executed in an illegal context"
};
static const _error _error_OB_ERR_CTE_NEED_QUERY_BLOCKS = {
      .error_name            = "OB_ERR_CTE_NEED_QUERY_BLOCKS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 3574,
      .sqlstate              = "HY000",
      .str_error             = "Recursive Common Table Expression should have one or more non-recursive query blocks followed by one or more recursive ones",
      .str_user_error        = "Recursive Common Table Expression should have one or more non-recursive query blocks followed by one or more recursive ones: %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5982, Recursive Common Table Expression should have one or more non-recursive query blocks followed by one or more recursive ones",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5982, Recursive Common Table Expression should have one or more non-recursive query blocks followed by one or more recursive ones: %s"
};
static const _error _error_OB_ERR_WINDOW_ROWS_INTERVAL_USE = {
      .error_name            = "OB_ERR_WINDOW_ROWS_INTERVAL_USE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WINDOW_ROWS_INTERVAL_USE,
      .sqlstate              = "HY000",
      .str_error             = "Window '<unnamed window>': INTERVAL can only be used with RANGE frames.",
      .str_user_error        = "Window '%s': INTERVAL can only be used with RANGE frames.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5983, Window '<unnamed window>': INTERVAL can only be used with RANGE frames.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5983, Window '%s': INTERVAL can only be used with RANGE frames."
};
static const _error _error_OB_ERR_WINDOW_RANGE_FRAME_ORDER_TYPE = {
      .error_name            = "OB_ERR_WINDOW_RANGE_FRAME_ORDER_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WINDOW_RANGE_FRAME_ORDER_TYPE,
      .sqlstate              = "HY000",
      .str_error             = "Window '<unnamed window>' with RANGE N PRECEDING/FOLLOWING frame requires exactly one ORDER BY expression of numeric or temporal type",
      .str_user_error        = "Window '%s' with RANGE N PRECEDING/FOLLOWING frame requires exactly one ORDER BY expression of numeric or temporal type",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5984, Window '<unnamed window>' with RANGE N PRECEDING/FOLLOWING frame requires exactly one ORDER BY expression of numeric or temporal type",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5984, Window '%s' with RANGE N PRECEDING/FOLLOWING frame requires exactly one ORDER BY expression of numeric or temporal type"
};
static const _error _error_OB_ERR_WINDOW_ILLEGAL_ORDER_BY = {
      .error_name            = "OB_ERR_WINDOW_ILLEGAL_ORDER_BY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WINDOW_ILLEGAL_ORDER_BY,
      .sqlstate              = "HY000",
      .str_error             = "Window '<unnamed window>': ORDER BY or PARTITION BY uses legacy position indication which is not supported use expression.",
      .str_user_error        = "Window '%s': ORDER BY or PARTITION BY uses legacy position indication which is not supported use expression.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5985, Window '<unnamed window>': ORDER BY or PARTITION BY uses legacy position indication which is not supported use expression.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5985, Window '%s': ORDER BY or PARTITION BY uses legacy position indication which is not supported use expression."
};
static const _error _error_OB_ERR_MULTIPLE_CONSTRAINTS_WITH_SAME_NAME = {
      .error_name            = "OB_ERR_MULTIPLE_CONSTRAINTS_WITH_SAME_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_MULTIPLE_CONSTRAINTS_WITH_SAME_NAME,
      .sqlstate              = "HY000",
      .str_error             = "Table has multiple constraints with the name.",
      .str_user_error        = "Table has multiple constraints with the name \'%.*s\'. Please use constraint specific \'%.*s\' clause.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5986, Table has multiple constraints with the name.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5986, Table has multiple constraints with the name \'%.*s\'. Please use constraint specific \'%.*s\' clause."
};
static const _error _error_OB_ERR_NON_BOOLEAN_EXPR_FOR_CHECK_CONSTRAINT = {
      .error_name            = "OB_ERR_NON_BOOLEAN_EXPR_FOR_CHECK_CONSTRAINT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NON_BOOLEAN_EXPR_FOR_CHECK_CONSTRAINT,
      .sqlstate              = "HY000",
      .str_error             = "An expression of non-boolean type specified to a check constraint",
      .str_user_error        = "An expression of non-boolean type specified to a check constraint \'%.*s\'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5987, An expression of non-boolean type specified to a check constraint",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5987, An expression of non-boolean type specified to a check constraint \'%.*s\'"
};
static const _error _error_OB_ERR_CHECK_CONSTRAINT_NOT_FOUND = {
      .error_name            = "OB_ERR_CHECK_CONSTRAINT_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CHECK_CONSTRAINT_NOT_FOUND,
      .sqlstate              = "HY000",
      .str_error             = "Check constraint is not found in the table.",
      .str_user_error        = "Check constraint \'%.*s\' is not found in the table.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5988, Check constraint is not found in the table.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5988, Check constraint \'%.*s\' is not found in the table."
};
static const _error _error_OB_ERR_ALTER_CONSTRAINT_ENFORCEMENT_NOT_SUPPORTED = {
      .error_name            = "OB_ERR_ALTER_CONSTRAINT_ENFORCEMENT_NOT_SUPPORTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_ALTER_CONSTRAINT_ENFORCEMENT_NOT_SUPPORTED,
      .sqlstate              = "HY000",
      .str_error             = "Altering constraint enforcement is not supported for the constraint.",
      .str_user_error        = "Altering constraint enforcement is not supported for the constraint \'%.*s\'. Enforcement state alter is not supported for the PRIMARY, UNIQUE and FOREIGN KEY type constraints.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5989, Altering constraint enforcement is not supported for the constraint.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5989, Altering constraint enforcement is not supported for the constraint \'%.*s\'. Enforcement state alter is not supported for the PRIMARY, UNIQUE and FOREIGN KEY type constraints."
};
static const _error _error_OB_ERR_CHECK_CONSTRAINT_REFERS_AUTO_INCREMENT_COLUMN = {
      .error_name            = "OB_ERR_CHECK_CONSTRAINT_REFERS_AUTO_INCREMENT_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CHECK_CONSTRAINT_REFERS_AUTO_INCREMENT_COLUMN,
      .sqlstate              = "HY000",
      .str_error             = "Check constraint cannot refer to an auto-increment column.",
      .str_user_error        = "Check constraint \'%.*s\' cannot refer to an auto-increment column.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5990, Check constraint cannot refer to an auto-increment column.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5990, Check constraint \'%.*s\' cannot refer to an auto-increment column."
};
static const _error _error_OB_ERR_CHECK_CONSTRAINT_NAMED_FUNCTION_IS_NOT_ALLOWED = {
      .error_name            = "OB_ERR_CHECK_CONSTRAINT_NAMED_FUNCTION_IS_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CHECK_CONSTRAINT_NAMED_FUNCTION_IS_NOT_ALLOWED,
      .sqlstate              = "HY000",
      .str_error             = "An expression of a check constraint contains disallowed function.",
      .str_user_error        = "An expression of a check constraint \'%.*s\' contains disallowed function: %.*s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5991, An expression of a check constraint contains disallowed function.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5991, An expression of a check constraint \'%.*s\' contains disallowed function: %.*s."
};
static const _error _error_OB_ERR_CHECK_CONSTRAINT_FUNCTION_IS_NOT_ALLOWED = {
      .error_name            = "OB_ERR_CHECK_CONSTRAINT_FUNCTION_IS_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CHECK_CONSTRAINT_FUNCTION_IS_NOT_ALLOWED,
      .sqlstate              = "HY000",
      .str_error             = "An expression of a check constraint contains disallowed function.",
      .str_user_error        = "An expression of a check constraint \'%.*s\' contains disallowed function",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5992, An expression of a check constraint contains disallowed function.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5992, An expression of a check constraint \'%.*s\' contains disallowed function"
};
static const _error _error_OB_ERR_CHECK_CONSTRAINT_VARIABLES = {
      .error_name            = "OB_ERR_CHECK_CONSTRAINT_VARIABLES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CHECK_CONSTRAINT_VARIABLES,
      .sqlstate              = "HY000",
      .str_error             = "An expression of a check constraint cannot refer to a user or system variable.",
      .str_user_error        = "An expression of a check constraint \'%.*s\' cannot refer to a user or system variable.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5993, An expression of a check constraint cannot refer to a user or system variable.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5993, An expression of a check constraint \'%.*s\' cannot refer to a user or system variable."
};
static const _error _error_OB_ERR_CHECK_CONSTRAINT_REFERS_UNKNOWN_COLUMN = {
      .error_name            = "OB_ERR_CHECK_CONSTRAINT_REFERS_UNKNOWN_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CHECK_CONSTRAINT_REFERS_UNKNOWN_COLUMN,
      .sqlstate              = "HY000",
      .str_error             = "Check constraint refers to non-existing column.",
      .str_user_error        = "Check constraint \'%.*s\' refers to non-existing column \'%.*s\'.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -5994, Check constraint refers to non-existing column.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5994, Check constraint \'%.*s\' refers to non-existing column \'%.*s\'."
};
static const _error _error_OB_ERR_USE_UDF_IN_PART = {
      .error_name            = "OB_ERR_USE_UDF_IN_PART",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Cannot use PL/SQL expressions in partitioning or subpartitioning columns",
      .str_user_error        = "Cannot use PL/SQL expressions in partitioning or subpartitioning columns",
      .oracle_errno          = 54021,
      .oracle_str_error      = "ORA-54021: Cannot use PL/SQL expressions in partitioning or subpartitioning columns",
      .oracle_str_user_error = "ORA-54021: Cannot use PL/SQL expressions in partitioning or subpartitioning columns"
};
static const _error _error_OB_ERR_USE_UDF_NOT_DETERMIN = {
      .error_name            = "OB_ERR_USE_UDF_NOT_DETERMIN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The function is not deterministic",
      .str_user_error        = "The function is not deterministic",
      .oracle_errno          = 30553,
      .oracle_str_error      = "ORA-30553: The function is not deterministic",
      .oracle_str_user_error = "ORA-30553: The function is not deterministic"
};
static const _error _error_OB_ERR_INTERVAL_CLAUSE_HAS_MORE_THAN_ONE_COLUMN = {
      .error_name            = "OB_ERR_INTERVAL_CLAUSE_HAS_MORE_THAN_ONE_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Range partitioned table with INTERVAL clause has more than one column",
      .str_user_error        = "Range partitioned table with INTERVAL clause has more than one column",
      .oracle_errno          = 14750,
      .oracle_str_error      = "ORA-14750: Range partitioned table with INTERVAL clause has more than one column",
      .oracle_str_user_error = "ORA-14750: Range partitioned table with INTERVAL clause has more than one column"
};
static const _error _error_OB_ERR_INVALID_DATA_TYPE_INTERVAL_TABLE = {
      .error_name            = "OB_ERR_INVALID_DATA_TYPE_INTERVAL_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid data type for partitioning column of an interval partitioned table",
      .str_user_error        = "Invalid data type for partitioning column of an interval partitioned table",
      .oracle_errno          = 14751,
      .oracle_str_error      = "ORA-14751: Invalid data type for partitioning column of an interval partitioned table",
      .oracle_str_user_error = "ORA-14751: Invalid data type for partitioning column of an interval partitioned table"
};
static const _error _error_OB_ERR_INTERVAL_EXPR_NOT_CORRECT_TYPE = {
      .error_name            = "OB_ERR_INTERVAL_EXPR_NOT_CORRECT_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Interval expression is not a constant of the correct type",
      .str_user_error        = "Interval expression is not a constant of the correct type",
      .oracle_errno          = 14752,
      .oracle_str_error      = "ORA-14752: Interval expression is not a constant of the correct type",
      .oracle_str_user_error = "ORA-14752: Interval expression is not a constant of the correct type"
};
static const _error _error_OB_ERR_TABLE_IS_ALREADY_A_RANGE_PARTITIONED_TABLE = {
      .error_name            = "OB_ERR_TABLE_IS_ALREADY_A_RANGE_PARTITIONED_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Table is already a range partitioned table",
      .str_user_error        = "Table is already a range partitioned table",
      .oracle_errno          = 14757,
      .oracle_str_error      = "ORA-14757: Table is already a range partitioned table",
      .oracle_str_user_error = "ORA-14757: Table is already a range partitioned table"
};
static const _error _error_OB_TRANSACTION_SET_VIOLATION = {
      .error_name            = "OB_TRANSACTION_SET_VIOLATION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "25000",
      .str_error             = "Transaction set changed during the execution",
      .str_user_error        = "Transaction set changed during the execution",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6001, Transaction set changed during the execution",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6001, Transaction set changed during the execution"
};
static const _error _error_OB_TRANS_ROLLBACKED = {
      .error_name            = "OB_TRANS_ROLLBACKED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "40000",
      .str_error             = "Transaction rollbacked",
      .str_user_error        = "transaction is rolled back",
      .oracle_errno          = 24761,
      .oracle_str_error      = "ORA-24761: transaction rolled back",
      .oracle_str_user_error = "ORA-24761: transaction rolled back"
};
static const _error _error_OB_ERR_EXCLUSIVE_LOCK_CONFLICT = {
      .error_name            = "OB_ERR_EXCLUSIVE_LOCK_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_LOCK_WAIT_TIMEOUT,
      .sqlstate              = "HY000",
      .str_error             = "Lock wait timeout exceeded; try restarting transaction",
      .str_user_error        = "Lock wait timeout exceeded; try restarting transaction",
      .oracle_errno          = 30006,
      .oracle_str_error      = "ORA-30006: resource busy; acquire with WAIT timeout expired",
      .oracle_str_user_error = "ORA-30006: resource busy; acquire with WAIT timeout expired"
};
static const _error _error_OB_ERR_SHARED_LOCK_CONFLICT = {
      .error_name            = "OB_ERR_SHARED_LOCK_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 4012,
      .sqlstate              = "HY000",
      .str_error             = "Statement is timeout",
      .str_user_error        = "Statement is timeout",
      .oracle_errno          = 2049,
      .oracle_str_error      = "ORA-02049: timeout: distributed transaction waiting for lock",
      .oracle_str_user_error = "ORA-02049: timeout: distributed transaction waiting for lock"
};
static const _error _error_OB_TRY_LOCK_ROW_CONFLICT = {
      .error_name            = "OB_TRY_LOCK_ROW_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Try lock row conflict",
      .str_user_error        = "Try lock row conflict",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6005, Try lock row conflict",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6005, Try lock row conflict"
};
static const _error _error_OB_ERR_EXCLUSIVE_LOCK_CONFLICT_NOWAIT = {
      .error_name            = "OB_ERR_EXCLUSIVE_LOCK_CONFLICT_NOWAIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_LOCK_WAIT_TIMEOUT,
      .sqlstate              = "HY000",
      .str_error             = "Lock wait timeout exceeded; try restarting transaction",
      .str_user_error        = "Lock wait timeout exceeded; try restarting transaction",
      .oracle_errno          = 54,
      .oracle_str_error      = "ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired",
      .oracle_str_user_error = "ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired"
};
static const _error _error_OB_CLOCK_OUT_OF_ORDER = {
      .error_name            = "OB_CLOCK_OUT_OF_ORDER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "25000",
      .str_error             = "Clock out of order",
      .str_user_error        = "Clock out of order",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6201, Clock out of order",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6201, Clock out of order"
};
static const _error _error_OB_SWITCHING_TO_FOLLOWER_GRACEFULLY = {
      .error_name            = "OB_SWITCHING_TO_FOLLOWER_GRACEFULLY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "tx ctx switching to follower gracefully",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6202, tx ctx switching to follower gracefully",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6202, %s"
};
static const _error _error_OB_MASK_SET_NO_NODE = {
      .error_name            = "OB_MASK_SET_NO_NODE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "25000",
      .str_error             = "Mask set has no node",
      .str_user_error        = "Mask set has no node",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6203, Mask set has no node",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6203, Mask set has no node"
};
static const _error _error_OB_TRANS_HAS_DECIDED = {
      .error_name            = "OB_TRANS_HAS_DECIDED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Transaction has been decided",
      .str_user_error        = "Transaction has been decided",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6204, Transaction has been decided",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6204, Transaction has been decided"
};
static const _error _error_OB_TRANS_INVALID_STATE = {
      .error_name            = "OB_TRANS_INVALID_STATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Transaction state invalid",
      .str_user_error        = "Transaction state invalid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6205, Transaction state invalid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6205, Transaction state invalid"
};
static const _error _error_OB_TRANS_STATE_NOT_CHANGE = {
      .error_name            = "OB_TRANS_STATE_NOT_CHANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Transaction state not changed",
      .str_user_error        = "Transaction state not changed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6206, Transaction state not changed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6206, Transaction state not changed"
};
static const _error _error_OB_TRANS_PROTOCOL_ERROR = {
      .error_name            = "OB_TRANS_PROTOCOL_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Transaction protocol error",
      .str_user_error        = "Transaction protocol error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6207, Transaction protocol error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6207, Transaction protocol error"
};
static const _error _error_OB_TRANS_INVALID_MESSAGE = {
      .error_name            = "OB_TRANS_INVALID_MESSAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Transaction message invalid",
      .str_user_error        = "Transaction message invalid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6208, Transaction message invalid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6208, Transaction message invalid"
};
static const _error _error_OB_TRANS_INVALID_MESSAGE_TYPE = {
      .error_name            = "OB_TRANS_INVALID_MESSAGE_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Transaction message type invalid",
      .str_user_error        = "Transaction message type invalid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6209, Transaction message type invalid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6209, Transaction message type invalid"
};
static const _error _error_OB_TRANS_TIMEOUT = {
      .error_name            = "OB_TRANS_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 4012,
      .sqlstate              = "25000",
      .str_error             = "Transaction timeout occurred, please rollback the transaction, set the variable ob_trx_timeout to a larger value and then restart the transaction",
      .str_user_error        = "Transaction timeout occurred, please rollback the transaction, set the variable ob_trx_timeout to a larger value and then restart the transaction",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6210, Transaction timeout occurred, please rollback the transaction, set the variable ob_trx_timeout to a larger value and then restart the transaction",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6210, Transaction timeout occurred, please rollback the transaction, set the variable ob_trx_timeout to a larger value and then restart the transaction"
};
static const _error _error_OB_TRANS_KILLED = {
      .error_name            = "OB_TRANS_KILLED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 6002,
      .sqlstate              = "25000",
      .str_error             = "Transaction is killed",
      .str_user_error        = "Transaction is killed",
      .oracle_errno          = 24761,
      .oracle_str_error      = "ORA-24761: transaction rolled back: transaction is killed",
      .oracle_str_user_error = "ORA-24761: transaction rolled back: transaction is killed"
};
static const _error _error_OB_TRANS_STMT_TIMEOUT = {
      .error_name            = "OB_TRANS_STMT_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 4012,
      .sqlstate              = "25000",
      .str_error             = "Statement timeout occurred, please set the variable ob_query_timeout to a larger value an then restart the statement",
      .str_user_error        = "Statement timeout occurred, please set the variable ob_query_timeout to a larger value an then restart the statement",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6212, Statement timeout occurred, please set the variable ob_query_timeout to a larger value an then restart the statement",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6212, Statement timeout occurred, please set the variable ob_query_timeout to a larger value an then restart the statement"
};
static const _error _error_OB_TRANS_CTX_NOT_EXIST = {
      .error_name            = "OB_TRANS_CTX_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 6002,
      .sqlstate              = "HY000",
      .str_error             = "Transaction context does not exist",
      .str_user_error        = "Transaction context does not exist",
      .oracle_errno          = 24761,
      .oracle_str_error      = "ORA-24761: transaction rolled back: transaction context does not exist",
      .oracle_str_user_error = "ORA-24761: transaction rolled back: transaction context does not exist"
};
static const _error _error_OB_PARTITION_IS_FROZEN = {
      .error_name            = "OB_PARTITION_IS_FROZEN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 6002,
      .sqlstate              = "25000",
      .str_error             = "Partition is frozen",
      .str_user_error        = "Partition is frozen",
      .oracle_errno          = 24761,
      .oracle_str_error      = "ORA-24761: transaction rolled back: partition is frozen",
      .oracle_str_user_error = "ORA-24761: transaction rolled back: partition is frozen"
};
static const _error _error_OB_PARTITION_IS_NOT_FROZEN = {
      .error_name            = "OB_PARTITION_IS_NOT_FROZEN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Partition is not frozen",
      .str_user_error        = "Partition is not frozen",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6215, Partition is not frozen",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6215, Partition is not frozen"
};
static const _error _error_OB_TRANS_INVALID_LOG_TYPE = {
      .error_name            = "OB_TRANS_INVALID_LOG_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Transaction invalid log type",
      .str_user_error        = "Transaction invalid log type",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6219, Transaction invalid log type",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6219, Transaction invalid log type"
};
static const _error _error_OB_TRANS_SQL_SEQUENCE_ILLEGAL = {
      .error_name            = "OB_TRANS_SQL_SEQUENCE_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "SQL sequence illegal",
      .str_user_error        = "SQL sequence illegal",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6220, SQL sequence illegal",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6220, SQL sequence illegal"
};
static const _error _error_OB_TRANS_CANNOT_BE_KILLED = {
      .error_name            = "OB_TRANS_CANNOT_BE_KILLED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Transaction context cannot be killed",
      .str_user_error        = "Transaction context cannot be killed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6221, Transaction context cannot be killed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6221, Transaction context cannot be killed"
};
static const _error _error_OB_TRANS_STATE_UNKNOWN = {
      .error_name            = "OB_TRANS_STATE_UNKNOWN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Transaction state unknown",
      .str_user_error        = "Transaction state unknown",
      .oracle_errno          = 25405,
      .oracle_str_error      = "ORA-25405: transaction status unknown",
      .oracle_str_user_error = "ORA-25405: transaction status unknown"
};
static const _error _error_OB_TRANS_IS_EXITING = {
      .error_name            = "OB_TRANS_IS_EXITING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 6002,
      .sqlstate              = "25000",
      .str_error             = "Transaction exiting",
      .str_user_error        = "Transaction exiting",
      .oracle_errno          = 24761,
      .oracle_str_error      = "ORA-24761: transaction rolled back: Transaction exiting",
      .oracle_str_user_error = "ORA-24761: transaction rolled back: Transaction exiting"
};
static const _error _error_OB_TRANS_NEED_ROLLBACK = {
      .error_name            = "OB_TRANS_NEED_ROLLBACK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 6002,
      .sqlstate              = "25000",
      .str_error             = "transaction needs rollback",
      .str_user_error        = "transaction needs rollback",
      .oracle_errno          = 24761,
      .oracle_str_error      = "ORA-24761: transaction rolled back: transaction needs rollback",
      .oracle_str_user_error = "ORA-24761: transaction rolled back: transaction needs rollback"
};
static const _error _error_OB_TRANS_UNKNOWN = {
      .error_name            = "OB_TRANS_UNKNOWN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 4012,
      .sqlstate              = "25000",
      .str_error             = "Transaction result is unknown",
      .str_user_error        = "Transaction result is unknown",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6225, Transaction result is unknown",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6225, Transaction result is unknown"
};
static const _error _error_OB_ERR_READ_ONLY_TRANSACTION = {
      .error_name            = "OB_ERR_READ_ONLY_TRANSACTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION,
      .sqlstate              = "25006",
      .str_error             = "Cannot execute statement in a READ ONLY transaction",
      .str_user_error        = "Cannot execute statement in a READ ONLY transaction",
      .oracle_errno          = 1456,
      .oracle_str_error      = "ORA-01456: may not perform insert/delete/update operation inside a READ ONLY transaction",
      .oracle_str_user_error = "ORA-01456: may not perform insert/delete/update operation inside a READ ONLY transaction"
};
static const _error _error_OB_PARTITION_IS_NOT_STOPPED = {
      .error_name            = "OB_PARTITION_IS_NOT_STOPPED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Partition is not stopped",
      .str_user_error        = "Partition is not stopped",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6227, Partition is not stopped",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6227, Partition is not stopped"
};
static const _error _error_OB_PARTITION_IS_STOPPED = {
      .error_name            = "OB_PARTITION_IS_STOPPED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Partition has been stopped",
      .str_user_error        = "Partition has been stopped",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6228, Partition has been stopped",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6228, Partition has been stopped"
};
static const _error _error_OB_PARTITION_IS_BLOCKED = {
      .error_name            = "OB_PARTITION_IS_BLOCKED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Partition has been blocked",
      .str_user_error        = "Partition has been blocked",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6229, Partition has been blocked",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6229, Partition has been blocked"
};
static const _error _error_OB_TRANS_RPC_TIMEOUT = {
      .error_name            = "OB_TRANS_RPC_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 4012,
      .sqlstate              = "25000",
      .str_error             = "transaction rpc timeout",
      .str_user_error        = "transaction rpc timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6230, transaction rpc timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6230, transaction rpc timeout"
};
static const _error _error_OB_REPLICA_NOT_READABLE = {
      .error_name            = "OB_REPLICA_NOT_READABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "replica is not readable",
      .str_user_error        = "replica is not readable",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6231, replica is not readable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6231, replica is not readable"
};
static const _error _error_OB_PARTITION_IS_SPLITTING = {
      .error_name            = "OB_PARTITION_IS_SPLITTING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Partition is splitting",
      .str_user_error        = "Partition is splitting",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6232, Partition is splitting",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6232, Partition is splitting"
};
static const _error _error_OB_TRANS_COMMITED = {
      .error_name            = "OB_TRANS_COMMITED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Transaction has been commited",
      .str_user_error        = "Transaction has been commited",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6233, Transaction has been commited",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6233, Transaction has been commited"
};
static const _error _error_OB_TRANS_CTX_COUNT_REACH_LIMIT = {
      .error_name            = "OB_TRANS_CTX_COUNT_REACH_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 6002,
      .sqlstate              = "25000",
      .str_error             = "transaction context count reach limit",
      .str_user_error        = "transaction context count reach limit",
      .oracle_errno          = 24761,
      .oracle_str_error      = "ORA-24761: transaction rolled back: transaction context count reach limit",
      .oracle_str_user_error = "ORA-24761: transaction rolled back: transaction context count reach limit"
};
static const _error _error_OB_TRANS_CANNOT_SERIALIZE = {
      .error_name            = "OB_TRANS_CANNOT_SERIALIZE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "25000",
      .str_error             = "can't serialize access for this transaction",
      .str_user_error        = "can't serialize access for this transaction",
      .oracle_errno          = 8177,
      .oracle_str_error      = "ORA-08177: can't serialize access for this transaction",
      .oracle_str_user_error = "ORA-08177: can't serialize access for this transaction"
};
static const _error _error_OB_TRANS_WEAK_READ_VERSION_NOT_READY = {
      .error_name            = "OB_TRANS_WEAK_READ_VERSION_NOT_READY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transaction weak read version is not ready",
      .str_user_error        = "transaction weak read version is not ready",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6236, transaction weak read version is not ready",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6236, transaction weak read version is not ready"
};
static const _error _error_OB_GTS_STANDBY_IS_INVALID = {
      .error_name            = "OB_GTS_STANDBY_IS_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "gts standby is invalid",
      .str_user_error        = "gts standby is invalid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6237, gts standby is invalid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6237, gts standby is invalid"
};
static const _error _error_OB_GTS_UPDATE_FAILED = {
      .error_name            = "OB_GTS_UPDATE_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "gts update failed",
      .str_user_error        = "gts update failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6238, gts update failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6238, gts update failed"
};
static const _error _error_OB_GTS_IS_NOT_SERVING = {
      .error_name            = "OB_GTS_IS_NOT_SERVING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "gts is not serving",
      .str_user_error        = "gts is not serving",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6239, gts is not serving",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6239, gts is not serving"
};
static const _error _error_OB_PG_PARTITION_NOT_EXIST = {
      .error_name            = "OB_PG_PARTITION_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "pg partition not exist",
      .str_user_error        = "pg partition not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6240, pg partition not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6240, pg partition not exist"
};
static const _error _error_OB_TRANS_STMT_NEED_RETRY = {
      .error_name            = "OB_TRANS_STMT_NEED_RETRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transaction statement need retry",
      .str_user_error        = "transaction statement need retry",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6241, transaction statement need retry",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6241, transaction statement need retry"
};
static const _error _error_OB_SAVEPOINT_NOT_EXIST = {
      .error_name            = "OB_SAVEPOINT_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_DOES_NOT_EXIST,
      .sqlstate              = "42000",
      .str_error             = "savepoint does not exist",
      .str_user_error        = "savepoint does not exist",
      .oracle_errno          = 1086,
      .oracle_str_error      = "ORA-01086: savepoint does not exist",
      .oracle_str_user_error = "ORA-01086: savepoint does not exist"
};
static const _error _error_OB_TRANS_WAIT_SCHEMA_REFRESH = {
      .error_name            = "OB_TRANS_WAIT_SCHEMA_REFRESH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "local schema is not new enough, replaying logs of user table from standby cluster needs to wait for schema refreshing ",
      .str_user_error        = "local schema is not new enough, replaying logs of user table from standby cluster needs to wait for schema refreshing ",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6243, local schema is not new enough, replaying logs of user table from standby cluster needs to wait for schema refreshing ",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6243, local schema is not new enough, replaying logs of user table from standby cluster needs to wait for schema refreshing "
};
static const _error _error_OB_TRANS_OUT_OF_THRESHOLD = {
      .error_name            = "OB_TRANS_OUT_OF_THRESHOLD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "out of transaction threshold",
      .str_user_error        = "out of transaction threshold",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6244, out of transaction threshold",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6244, out of transaction threshold"
};
static const _error _error_OB_TRANS_XA_NOTA = {
      .error_name            = "OB_TRANS_XA_NOTA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_XAER_NOTA,
      .sqlstate              = "XAE04",
      .str_error             = "Unknown XID",
      .str_user_error        = "Unknown XID",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6245, Unknown XID",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6245, Unknown XID"
};
static const _error _error_OB_TRANS_XA_RMFAIL = {
      .error_name            = "OB_TRANS_XA_RMFAIL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_XAER_RMFAIL,
      .sqlstate              = "XAE07",
      .str_error             = "The command cannot be executed when global transaction is in this state",
      .str_user_error        = "The command cannot be executed when global transaction is in the %s state",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6246, The command cannot be executed when global transaction is in this state",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6246, The command cannot be executed when global transaction is in the %s state"
};
static const _error _error_OB_TRANS_XA_DUPID = {
      .error_name            = "OB_TRANS_XA_DUPID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_XAER_DUPID,
      .sqlstate              = "XAE08",
      .str_error             = "The XID already exists",
      .str_user_error        = "The XID already exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6247, The XID already exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6247, The XID already exists"
};
static const _error _error_OB_TRANS_XA_OUTSIDE = {
      .error_name            = "OB_TRANS_XA_OUTSIDE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_XAER_OUTSIDE,
      .sqlstate              = "XAE09",
      .str_error             = "Some work is done outside global transaction",
      .str_user_error        = "Some work is done outside global transaction",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6248, Some work is done outside global transaction",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6248, Some work is done outside global transaction"
};
static const _error _error_OB_TRANS_XA_INVAL = {
      .error_name            = "OB_TRANS_XA_INVAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_XAER_INVAL,
      .sqlstate              = "XAE05",
      .str_error             = "Invalid arguments were given",
      .str_user_error        = "Invalid arguments were given",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6249, Invalid arguments were given",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6249, Invalid arguments were given"
};
static const _error _error_OB_TRANS_XA_RMERR = {
      .error_name            = "OB_TRANS_XA_RMERR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_XAER_RMERR,
      .sqlstate              = "XAE03",
      .str_error             = "Resource manager error occurred in the transaction branch",
      .str_user_error        = "Resource manager error occurred in the transaction branch",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6250, Resource manager error occurred in the transaction branch",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6250, Resource manager error occurred in the transaction branch"
};
static const _error _error_OB_TRANS_XA_PROTO = {
      .error_name            = "OB_TRANS_XA_PROTO",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Routine invoked in an improper context",
      .str_user_error        = "Routine invoked in an improper context",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6251, Routine invoked in an improper context",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6251, Routine invoked in an improper context"
};
static const _error _error_OB_TRANS_XA_RBROLLBACK = {
      .error_name            = "OB_TRANS_XA_RBROLLBACK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_XA_RBROLLBACK,
      .sqlstate              = "XA100",
      .str_error             = "Rollback was caused by an unspecified reason",
      .str_user_error        = "Rollback was caused by an unspecified reason",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6252, Rollback was caused by an unspecified reason",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6252, Rollback was caused by an unspecified reason"
};
static const _error _error_OB_TRANS_XA_RBTIMEOUT = {
      .error_name            = "OB_TRANS_XA_RBTIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_XA_RBTIMEOUT,
      .sqlstate              = "XA106",
      .str_error             = "Transaction branch took long",
      .str_user_error        = "Transaction branch took long",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6253, Transaction branch took long",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6253, Transaction branch took long"
};
static const _error _error_OB_TRANS_XA_RDONLY = {
      .error_name            = "OB_TRANS_XA_RDONLY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Transaction was read-only and has been committed",
      .str_user_error        = "Transaction was read-only and has been committed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6254, Transaction was read-only and has been committed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6254, Transaction was read-only and has been committed"
};
static const _error _error_OB_TRANS_XA_RETRY = {
      .error_name            = "OB_TRANS_XA_RETRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Routine returned with no effect and may be re-issued",
      .str_user_error        = "Routine returned with no effect and may be re-issued",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6255, Routine returned with no effect and may be re-issued",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6255, Routine returned with no effect and may be re-issued"
};
static const _error _error_OB_ERR_ROW_NOT_LOCKED = {
      .error_name            = "OB_ERR_ROW_NOT_LOCKED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Row has not been locked",
      .str_user_error        = "Row has not been locked",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6256, Row has not been locked",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6256, Row has not been locked"
};
static const _error _error_OB_EMPTY_PG = {
      .error_name            = "OB_EMPTY_PG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Empty partition group",
      .str_user_error        = "Empty partition group",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6257, Empty partition group",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6257, Empty partition group"
};
static const _error _error_OB_TRANS_XA_ERR_COMMIT = {
      .error_name            = "OB_TRANS_XA_ERR_COMMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_XAER_RMFAIL,
      .sqlstate              = "XAE07",
      .str_error             = "RMFAIL: The command cannot be executed when global transaction is in this state",
      .str_user_error        = "RMFAIL: The command cannot be executed when global transaction is in the %s state",
      .oracle_errno          = 2089,
      .oracle_str_error      = "ORA-02089: COMMIT is not allowed in a subordinate session",
      .oracle_str_user_error = "ORA-02089: COMMIT is not allowed in a subordinate session"
};
static const _error _error_OB_ERR_RESTORE_POINT_EXIST = {
      .error_name            = "OB_ERR_RESTORE_POINT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Restore point %s already exists",
      .str_user_error        = "Restore point %s already exists",
      .oracle_errno          = 38778,
      .oracle_str_error      = "ORA-38778: Restore point %s already exists",
      .oracle_str_user_error = "ORA-38778: Restore point %s already exists"
};
static const _error _error_OB_ERR_RESTORE_POINT_NOT_EXIST = {
      .error_name            = "OB_ERR_RESTORE_POINT_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Restore point %s does not exist",
      .str_user_error        = "Restore point %s does not exist",
      .oracle_errno          = 38780,
      .oracle_str_error      = "ORA-38780: Restore point %s does not exists",
      .oracle_str_user_error = "ORA-38780: Restore point %s does not exists"
};
static const _error _error_OB_ERR_BACKUP_POINT_EXIST = {
      .error_name            = "OB_ERR_BACKUP_POINT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Backup point %s already exists",
      .str_user_error        = "Backup point %s already exists",
      .oracle_errno          = 38778,
      .oracle_str_error      = "ORA-38778: Restore point %s already exists",
      .oracle_str_user_error = "ORA-38778: Restore point %s already exists"
};
static const _error _error_OB_ERR_BACKUP_POINT_NOT_EXIST = {
      .error_name            = "OB_ERR_BACKUP_POINT_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Backup point %s does not exist",
      .str_user_error        = "Backup point %s does not exist",
      .oracle_errno          = 38780,
      .oracle_str_error      = "ORA-38780: Restore point %s does not exists",
      .oracle_str_user_error = "ORA-38780: Restore point %s does not exists"
};
static const _error _error_OB_ERR_RESTORE_POINT_TOO_MANY = {
      .error_name            = "OB_ERR_RESTORE_POINT_TOO_MANY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot create restore point - too many restore points",
      .str_user_error        = "cannot create restore point - too many restore points",
      .oracle_errno          = 38779,
      .oracle_str_error      = "ORA-38779: cannot create restore point - too many restore points",
      .oracle_str_user_error = "ORA-38779: cannot create restore point - too many restore points"
};
static const _error _error_OB_TRANS_XA_BRANCH_FAIL = {
      .error_name            = "OB_TRANS_XA_BRANCH_FAIL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "another session or branch in same transaction failed or finalized",
      .str_user_error        = "another session or branch in same transaction failed or finalized",
      .oracle_errno          = 2051,
      .oracle_str_error      = "ORA-02051: another session or branch in same transaction failed or finalized",
      .oracle_str_user_error = "ORA-02051: another session or branch in same transaction failed or finalized"
};
static const _error _error_OB_OBJ_LOCK_NOT_EXIST = {
      .error_name            = "OB_OBJ_LOCK_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "object lock does not exist.",
      .str_user_error        = "object lock does not exist.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6265, object lock does not exist.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6265, object lock does not exist."
};
static const _error _error_OB_OBJ_LOCK_EXIST = {
      .error_name            = "OB_OBJ_LOCK_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "object lock exists.",
      .str_user_error        = "object lock exists.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6266, object lock exists.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6266, object lock exists."
};
static const _error _error_OB_TRY_LOCK_OBJ_CONFLICT = {
      .error_name            = "OB_TRY_LOCK_OBJ_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Try lock object conflict",
      .str_user_error        = "Try lock object conflict",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6267, Try lock object conflict",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6267, Try lock object conflict"
};
static const _error _error_OB_TX_NOLOGCB = {
      .error_name            = "OB_TX_NOLOGCB",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "No log callbacks available",
      .str_user_error        = "No log callbacks available",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6268, No log callbacks available",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6268, No log callbacks available"
};
static const _error _error_OB_ERR_ADD_PARTITION_ON_INTERVAL = {
      .error_name            = "OB_ERR_ADD_PARTITION_ON_INTERVAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ADD PARTITION is not permitted on Interval partitioned objects",
      .str_user_error        = "ADD PARTITION is not permitted on Interval partitioned objects",
      .oracle_errno          = 14760,
      .oracle_str_error      = "ORA-14760: ADD PARTITION is not permitted on Interval partitioned objects",
      .oracle_str_user_error = "ORA-14760: ADD PARTITION is not permitted on Interval partitioned objects"
};
static const _error _error_OB_ERR_MAXVALUE_PARTITION_WITH_INTERVAL = {
      .error_name            = "OB_ERR_MAXVALUE_PARTITION_WITH_INTERVAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "MAXVALUE partition cannot be specified for Interval partitioned objects",
      .str_user_error        = "MAXVALUE partition cannot be specified for Interval partitioned objects",
      .oracle_errno          = 14761,
      .oracle_str_error      = "ORA-14761: MAXVALUE partition cannot be specified for Interval partitioned objects",
      .oracle_str_user_error = "ORA-14761: MAXVALUE partition cannot be specified for Interval partitioned objects"
};
static const _error _error_OB_ERR_INVALID_INTERVAL_HIGH_BOUNDS = {
      .error_name            = "OB_ERR_INVALID_INTERVAL_HIGH_BOUNDS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Cannot specify this interval with existing high bounds",
      .str_user_error        = "Cannot specify this interval with existing high bounds",
      .oracle_errno          = 14767,
      .oracle_str_error      = "ORA-14767: Cannot specify this interval with existing high bounds",
      .oracle_str_user_error = "ORA-14767: Cannot specify this interval with existing high bounds"
};
static const _error _error_OB_NO_PARTITION_FOR_INTERVAL_PART = {
      .error_name            = "OB_NO_PARTITION_FOR_INTERVAL_PART",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Table has no partition for value in interval partition table",
      .str_user_error        = "Table has no partition for value in interval partition table",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6272, Table has no partition for value in interval partition table",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6272, Table has no partition for value in interval partition table"
};
static const _error _error_OB_ERR_INTERVAL_CANNOT_BE_ZERO = {
      .error_name            = "OB_ERR_INTERVAL_CANNOT_BE_ZERO",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Interval cannot be zero",
      .str_user_error        = "Interval cannot be zero",
      .oracle_errno          = 14753,
      .oracle_str_error      = "ORA-14753: Interval cannot be zero",
      .oracle_str_user_error = "ORA-14753: Interval cannot be zero"
};
static const _error _error_OB_ERR_PARTITIONING_KEY_MAPS_TO_A_PARTITION_OUTSIDE_MAXIMUM_PERMITTED_NUMBER_OF_PARTITIONS = {
      .error_name            = "OB_ERR_PARTITIONING_KEY_MAPS_TO_A_PARTITION_OUTSIDE_MAXIMUM_PERMITTED_NUMBER_OF_PARTITIONS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "partitioning key maps to a partition outside maximum permitted number of partitions",
      .str_user_error        = "partitioning key maps to a partition outside maximum permitted number of partitions",
      .oracle_errno          = 14300,
      .oracle_str_error      = "ORA-14300: partitioning key maps to a partition outside maximum permitted number of partitions",
      .oracle_str_user_error = "ORA-14300: partitioning key maps to a partition outside maximum permitted number of partitions"
};
static const _error _error_OB_OBJ_LOCK_NOT_COMPLETED = {
      .error_name            = "OB_OBJ_LOCK_NOT_COMPLETED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "object lock not completed, and can not unlock.",
      .str_user_error        = "object lock not completed, and can not unlock.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6275, object lock not completed, and can not unlock.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6275, object lock not completed, and can not unlock."
};
static const _error _error_OB_OBJ_UNLOCK_CONFLICT = {
      .error_name            = "OB_OBJ_UNLOCK_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "there is an unlock operation doing, unlock conflict.",
      .str_user_error        = "there is an unlock operation doing, unlock conflict.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6276, there is an unlock operation doing, unlock conflict.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6276, there is an unlock operation doing, unlock conflict."
};
static const _error _error_OB_SCN_OUT_OF_BOUND = {
      .error_name            = "OB_SCN_OUT_OF_BOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "scn is out of bounds of memtable",
      .str_user_error        = "scn is out of bounds of memtable",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6277, scn is out of bounds of memtable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6277, scn is out of bounds of memtable"
};
static const _error _error_OB_TRANS_IDLE_TIMEOUT = {
      .error_name            = "OB_TRANS_IDLE_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 6002,
      .sqlstate              = "25000",
      .str_error             = "Transaction idle timeout occurred, please rollback the transaction, set the variable ob_trx_idle_timeout to a larger value and then restart the transaction",
      .str_user_error        = "Transaction idle timeout occurred, please rollback the transaction, set the variable ob_trx_idle_timeout to a larger value and then restart the transaction",
      .oracle_errno          = 24761,
      .oracle_str_error      = "ORA-24761: transaction rolled back: transaction idle timeout",
      .oracle_str_user_error = "ORA-24761: transaction rolled back: transaction idle timeout"
};
static const _error _error_OB_TRANS_FREE_ROUTE_NOT_SUPPORTED = {
      .error_name            = "OB_TRANS_FREE_ROUTE_NOT_SUPPORTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 6279,
      .sqlstate              = "HY000",
      .str_error             = "Query is not supported to be executed on txn temporary node",
      .str_user_error        = "Query is not supported to be executed on txn temporary node",
      .oracle_errno          = 6279,
      .oracle_str_error      = "ORA-06279: Query is not supported to be executed on txn temporary node",
      .oracle_str_user_error = "ORA-06279: Query is not supported to be executed on txn temporary node"
};
static const _error _error_OB_TRANS_LIVE_TOO_MUCH_TIME = {
      .error_name            = "OB_TRANS_LIVE_TOO_MUCH_TIME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Transaction cost too much without commit or rollback",
      .str_user_error        = "Transaction cost too much without commit or rollback",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6280, Transaction cost too much without commit or rollback",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6280, Transaction cost too much without commit or rollback"
};
static const _error _error_OB_TRANS_COMMIT_TOO_MUCH_TIME = {
      .error_name            = "OB_TRANS_COMMIT_TOO_MUCH_TIME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Transaction commit cost too much",
      .str_user_error        = "Transaction commit cost too much",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6281, Transaction commit cost too much",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6281, Transaction commit cost too much"
};
static const _error _error_OB_TRANS_TOO_MANY_PARTICIPANTS = {
      .error_name            = "OB_TRANS_TOO_MANY_PARTICIPANTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 6002,
      .sqlstate              = "40000",
      .str_error             = "too many transaction participants",
      .str_user_error        = "too many transaction participants",
      .oracle_errno          = 24761,
      .oracle_str_error      = "ORA-24761: transaction rolled back: too many transaction participants",
      .oracle_str_user_error = "ORA-24761: transaction rolled back: too many transaction participants"
};
static const _error _error_OB_LOG_ALREADY_SPLIT = {
      .error_name            = "OB_LOG_ALREADY_SPLIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The big log entry has been split into multiple part",
      .str_user_error        = "The big log entry has been split into multiple part",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6283, The big log entry has been split into multiple part",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6283, The big log entry has been split into multiple part"
};
static const _error _error_OB_ERR_UNSUPPROTED_REF_IN_JSON_SCHEMA = {
      .error_name            = "OB_ERR_UNSUPPROTED_REF_IN_JSON_SCHEMA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NOT_SUPPORTED_YET,
      .sqlstate              = "42000",
      .str_error             = "This version doesn't yet support 'references in JSON Schema.",
      .str_user_error        = "This version doesn't yet support 'references in JSON Schema.",
      .oracle_errno          = 40441,
      .oracle_str_error      = "ORA-40441: This version doesn't yet support 'references in JSON Schema.",
      .oracle_str_user_error = "ORA-40441: This version doesn't yet support 'references in JSON Schema."
};
static const _error _error_OB_ERR_TYPE_OF_JSON_SCHEMA = {
      .error_name            = "OB_ERR_TYPE_OF_JSON_SCHEMA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_JSON_TYPE,
      .sqlstate              = "22032",
      .str_error             = "Invalid JSON type in argument, should be object.",
      .str_user_error        = "Invalid JSON type in argument, should be object.",
      .oracle_errno          = 40876,
      .oracle_str_error      = "ORA-40876: invalid JSON schema document",
      .oracle_str_user_error = "ORA-40876: invalid JSON schema document"
};
static const _error _error_OB_LOG_ID_NOT_FOUND = {
      .error_name            = "OB_LOG_ID_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log id not found",
      .str_user_error        = "log id not found",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6301, log id not found",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6301, log id not found"
};
static const _error _error_OB_LSR_THREAD_STOPPED = {
      .error_name            = "OB_LSR_THREAD_STOPPED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log scan runnable thread stop",
      .str_user_error        = "log scan runnable thread stop",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6302, log scan runnable thread stop",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6302, log scan runnable thread stop"
};
static const _error _error_OB_NO_LOG = {
      .error_name            = "OB_NO_LOG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no log ever scanned",
      .str_user_error        = "no log ever scanned",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6303, no log ever scanned",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6303, no log ever scanned"
};
static const _error _error_OB_LOG_ID_RANGE_ERROR = {
      .error_name            = "OB_LOG_ID_RANGE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log id range error",
      .str_user_error        = "log id range error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6304, log id range error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6304, log id range error"
};
static const _error _error_OB_LOG_ITER_ENOUGH = {
      .error_name            = "OB_LOG_ITER_ENOUGH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "iter scans enough files",
      .str_user_error        = "iter scans enough files",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6305, iter scans enough files",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6305, iter scans enough files"
};
static const _error _error_OB_CLOG_INVALID_ACK = {
      .error_name            = "OB_CLOG_INVALID_ACK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid ack msg",
      .str_user_error        = "invalid ack msg",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6306, invalid ack msg",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6306, invalid ack msg"
};
static const _error _error_OB_CLOG_CACHE_INVALID = {
      .error_name            = "OB_CLOG_CACHE_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "clog cache invalid",
      .str_user_error        = "clog cache invalid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6307, clog cache invalid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6307, clog cache invalid"
};
static const _error _error_OB_EXT_HANDLE_UNFINISH = {
      .error_name            = "OB_EXT_HANDLE_UNFINISH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "external executor handle do not finish",
      .str_user_error        = "external executor handle do not finish",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6308, external executor handle do not finish",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6308, external executor handle do not finish"
};
static const _error _error_OB_CURSOR_NOT_EXIST = {
      .error_name            = "OB_CURSOR_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cursor not exist",
      .str_user_error        = "cursor not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6309, cursor not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6309, cursor not exist"
};
static const _error _error_OB_STREAM_NOT_EXIST = {
      .error_name            = "OB_STREAM_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "stream not exist",
      .str_user_error        = "stream not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6310, stream not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6310, stream not exist"
};
static const _error _error_OB_STREAM_BUSY = {
      .error_name            = "OB_STREAM_BUSY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "stream busy",
      .str_user_error        = "stream busy",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6311, stream busy",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6311, stream busy"
};
static const _error _error_OB_FILE_RECYCLED = {
      .error_name            = "OB_FILE_RECYCLED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "file recycled",
      .str_user_error        = "file recycled",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6312, file recycled",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6312, file recycled"
};
static const _error _error_OB_REPLAY_EAGAIN_TOO_MUCH_TIME = {
      .error_name            = "OB_REPLAY_EAGAIN_TOO_MUCH_TIME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "replay eagain cost too much time",
      .str_user_error        = "replay eagain cost too much time",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6313, replay eagain cost too much time",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6313, replay eagain cost too much time"
};
static const _error _error_OB_MEMBER_CHANGE_FAILED = {
      .error_name            = "OB_MEMBER_CHANGE_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "member change log sync failed",
      .str_user_error        = "member change log sync failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6314, member change log sync failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6314, member change log sync failed"
};
static const _error _error_OB_NO_NEED_BATCH_CTX = {
      .error_name            = "OB_NO_NEED_BATCH_CTX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no need batch ctx",
      .str_user_error        = "no need batch ctx",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6315, no need batch ctx",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6315, no need batch ctx"
};
static const _error _error_OB_TOO_LARGE_LOG_ID = {
      .error_name            = "OB_TOO_LARGE_LOG_ID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "too large log id",
      .str_user_error        = "too large log id",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6316, too large log id",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6316, too large log id"
};
static const _error _error_OB_ALLOC_LOG_ID_NEED_RETRY = {
      .error_name            = "OB_ALLOC_LOG_ID_NEED_RETRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "alloc log id need retry",
      .str_user_error        = "alloc log id need retry",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6317, alloc log id need retry",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6317, alloc log id need retry"
};
static const _error _error_OB_TRANS_ONE_PC_NOT_ALLOWED = {
      .error_name            = "OB_TRANS_ONE_PC_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transaction one pc not allowed",
      .str_user_error        = "transaction one pc not allowed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6318, transaction one pc not allowed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6318, transaction one pc not allowed"
};
static const _error _error_OB_LOG_NEED_REBUILD = {
      .error_name            = "OB_LOG_NEED_REBUILD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "need rebuild",
      .str_user_error        = "need rebuild",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6319, need rebuild",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6319, need rebuild"
};
static const _error _error_OB_TOO_MANY_LOG_TASK = {
      .error_name            = "OB_TOO_MANY_LOG_TASK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "too many log tasks",
      .str_user_error        = "too many log tasks",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6320, too many log tasks",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6320, too many log tasks"
};
static const _error _error_OB_INVALID_BATCH_SIZE = {
      .error_name            = "OB_INVALID_BATCH_SIZE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ob invalid batch size",
      .str_user_error        = "ob invalid batch size",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6321, ob invalid batch size",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6321, ob invalid batch size"
};
static const _error _error_OB_CLOG_SLIDE_TIMEOUT = {
      .error_name            = "OB_CLOG_SLIDE_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ob clog slide timeout",
      .str_user_error        = "ob clog slide timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6322, ob clog slide timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6322, ob clog slide timeout"
};
static const _error _error_OB_LOG_REPLAY_ERROR = {
      .error_name            = "OB_LOG_REPLAY_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log replay error",
      .str_user_error        = "log replay error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6323, log replay error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6323, log replay error"
};
static const _error _error_OB_TRY_LOCK_CONFIG_CHANGE_CONFLICT = {
      .error_name            = "OB_TRY_LOCK_CONFIG_CHANGE_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ob trying to lock config change conflicts",
      .str_user_error        = "ob trying to lock config change conflicts",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6324, ob trying to lock config change conflicts",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6324, ob trying to lock config change conflicts"
};
static const _error _error_OB_CLOG_DISK_HANG = {
      .error_name            = "OB_CLOG_DISK_HANG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ob clog disk hang",
      .str_user_error        = "ob clog disk hang",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6325, ob clog disk hang",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6325, ob clog disk hang"
};
static const _error _error_OB_TABLE_LOCK_SPLIT_TWICE = {
      .error_name            = "OB_TABLE_LOCK_SPLIT_TWICE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "table lock has been splitted before, can not be splitted again",
      .str_user_error        = "table lock has been splitted before, can not be splitted again",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6326, table lock has been splitted before, can not be splitted again",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6326, table lock has been splitted before, can not be splitted again"
};
static const _error _error_OB_TABLE_LOCK_IS_SPLITTING = {
      .error_name            = "OB_TABLE_LOCK_IS_SPLITTING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "table lock is being splitted, can not be splitted again",
      .str_user_error        = "table lock is being splitted, can not be splitted again",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6327, table lock is being splitted, can not be splitted again",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6327, table lock is being splitted, can not be splitted again"
};
static const _error _error_OB_TABLE_LOCK_SPLIT_FAIL = {
      .error_name            = "OB_TABLE_LOCK_SPLIT_FAIL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "table lock splitting failed",
      .str_user_error        = "table lock splitting failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6328, table lock splitting failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6328, table lock splitting failed"
};
static const _error _error_OB_SEQ_NO_REORDER_UNDER_PDML = {
      .error_name            = "OB_SEQ_NO_REORDER_UNDER_PDML",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "pdml sql need retry under sequence number reorder",
      .str_user_error        = "pdml sql need retry under sequence number reorder",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6329, pdml sql need retry under sequence number reorder",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6329, pdml sql need retry under sequence number reorder"
};
static const _error _error_OB_USER_OUTOF_DATA_DISK_SPACE = {
      .error_name            = "OB_USER_OUTOF_DATA_DISK_SPACE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "user data disk is almost full",
      .str_user_error        = "user data disk is almost full",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -6330, user data disk is almost full",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6330, user data disk is almost full"
};
static const _error _error_OB_ELECTION_WARN_LOGBUF_FULL = {
      .error_name            = "OB_ELECTION_WARN_LOGBUF_FULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The log buffer is full",
      .str_user_error        = "The log buffer is full",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7000, The log buffer is full",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7000, The log buffer is full"
};
static const _error _error_OB_ELECTION_WARN_LOGBUF_EMPTY = {
      .error_name            = "OB_ELECTION_WARN_LOGBUF_EMPTY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The log buffer is empty",
      .str_user_error        = "The log buffer is empty",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7001, The log buffer is empty",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7001, The log buffer is empty"
};
static const _error _error_OB_ELECTION_WARN_NOT_RUNNING = {
      .error_name            = "OB_ELECTION_WARN_NOT_RUNNING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The object is not running",
      .str_user_error        = "The object is not running",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7002, The object is not running",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7002, The object is not running"
};
static const _error _error_OB_ELECTION_WARN_IS_RUNNING = {
      .error_name            = "OB_ELECTION_WARN_IS_RUNNING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The object is running",
      .str_user_error        = "The object is running",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7003, The object is running",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7003, The object is running"
};
static const _error _error_OB_ELECTION_WARN_NOT_REACH_MAJORITY = {
      .error_name            = "OB_ELECTION_WARN_NOT_REACH_MAJORITY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Election does not reach majority",
      .str_user_error        = "Election does not reach majority",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7004, Election does not reach majority",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7004, Election does not reach majority"
};
static const _error _error_OB_ELECTION_WARN_INVALID_SERVER = {
      .error_name            = "OB_ELECTION_WARN_INVALID_SERVER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The server is not valid",
      .str_user_error        = "The server is not valid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7005, The server is not valid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7005, The server is not valid"
};
static const _error _error_OB_ELECTION_WARN_INVALID_LEADER = {
      .error_name            = "OB_ELECTION_WARN_INVALID_LEADER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The leader is not valid",
      .str_user_error        = "The leader is not valid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7006, The leader is not valid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7006, The leader is not valid"
};
static const _error _error_OB_ELECTION_WARN_LEADER_LEASE_EXPIRED = {
      .error_name            = "OB_ELECTION_WARN_LEADER_LEASE_EXPIRED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The leader lease is expired",
      .str_user_error        = "The leader lease is expired",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7007, The leader lease is expired",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7007, The leader lease is expired"
};
static const _error _error_OB_ELECTION_WARN_INVALID_MESSAGE = {
      .error_name            = "OB_ELECTION_WARN_INVALID_MESSAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The message is not valid",
      .str_user_error        = "The message is not valid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7010, The message is not valid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7010, The message is not valid"
};
static const _error _error_OB_ELECTION_WARN_MESSAGE_NOT_INTIME = {
      .error_name            = "OB_ELECTION_WARN_MESSAGE_NOT_INTIME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The message is not intime",
      .str_user_error        = "The message is not intime",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7011, The message is not intime",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7011, The message is not intime"
};
static const _error _error_OB_ELECTION_WARN_NOT_CANDIDATE = {
      .error_name            = "OB_ELECTION_WARN_NOT_CANDIDATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The server is not candidate",
      .str_user_error        = "The server is not candidate",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7012, The server is not candidate",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7012, The server is not candidate"
};
static const _error _error_OB_ELECTION_WARN_NOT_CANDIDATE_OR_VOTER = {
      .error_name            = "OB_ELECTION_WARN_NOT_CANDIDATE_OR_VOTER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The server is not candidate or voter",
      .str_user_error        = "The server is not candidate or voter",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7013, The server is not candidate or voter",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7013, The server is not candidate or voter"
};
static const _error _error_OB_ELECTION_WARN_PROTOCOL_ERROR = {
      .error_name            = "OB_ELECTION_WARN_PROTOCOL_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Election protocol error",
      .str_user_error        = "Election protocol error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7014, Election protocol error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7014, Election protocol error"
};
static const _error _error_OB_ELECTION_WARN_RUNTIME_OUT_OF_RANGE = {
      .error_name            = "OB_ELECTION_WARN_RUNTIME_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The task run time out of range",
      .str_user_error        = "The task run time out of range",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7015, The task run time out of range",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7015, The task run time out of range"
};
static const _error _error_OB_ELECTION_WARN_LAST_OPERATION_NOT_DONE = {
      .error_name            = "OB_ELECTION_WARN_LAST_OPERATION_NOT_DONE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Last operation has not done",
      .str_user_error        = "Last operation has not done",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7021, Last operation has not done",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7021, Last operation has not done"
};
static const _error _error_OB_ELECTION_WARN_CURRENT_SERVER_NOT_LEADER = {
      .error_name            = "OB_ELECTION_WARN_CURRENT_SERVER_NOT_LEADER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Current server is not leader",
      .str_user_error        = "Current server is not leader",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7022, Current server is not leader",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7022, Current server is not leader"
};
static const _error _error_OB_ELECTION_WARN_NO_PREPARE_MESSAGE = {
      .error_name            = "OB_ELECTION_WARN_NO_PREPARE_MESSAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "There is not prepare message",
      .str_user_error        = "There is not prepare message",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7024, There is not prepare message",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7024, There is not prepare message"
};
static const _error _error_OB_ELECTION_ERROR_MULTI_PREPARE_MESSAGE = {
      .error_name            = "OB_ELECTION_ERROR_MULTI_PREPARE_MESSAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "There is more than one prepare message",
      .str_user_error        = "There is more than one prepare message",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7025, There is more than one prepare message",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7025, There is more than one prepare message"
};
static const _error _error_OB_ELECTION_NOT_EXIST = {
      .error_name            = "OB_ELECTION_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Election does not exist",
      .str_user_error        = "Election does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7026, Election does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7026, Election does not exist"
};
static const _error _error_OB_ELECTION_MGR_IS_RUNNING = {
      .error_name            = "OB_ELECTION_MGR_IS_RUNNING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Election manager is running",
      .str_user_error        = "Election manager is running",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7027, Election manager is running",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7027, Election manager is running"
};
static const _error _error_OB_ELECTION_WARN_NO_MAJORITY_PREPARE_MESSAGE = {
      .error_name            = "OB_ELECTION_WARN_NO_MAJORITY_PREPARE_MESSAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Election msg pool not have majority prepare message",
      .str_user_error        = "Election msg pool not have majority prepare message",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7029, Election msg pool not have majority prepare message",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7029, Election msg pool not have majority prepare message"
};
static const _error _error_OB_ELECTION_ASYNC_LOG_WARN_INIT = {
      .error_name            = "OB_ELECTION_ASYNC_LOG_WARN_INIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Election async log init error",
      .str_user_error        = "Election async log init error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7030, Election async log init error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7030, Election async log init error"
};
static const _error _error_OB_ELECTION_WAIT_LEADER_MESSAGE = {
      .error_name            = "OB_ELECTION_WAIT_LEADER_MESSAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Election waiting leader message",
      .str_user_error        = "Election waiting leader message",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7031, Election waiting leader message",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7031, Election waiting leader message"
};
static const _error _error_OB_ELECTION_GROUP_NOT_EXIST = {
      .error_name            = "OB_ELECTION_GROUP_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Election group not exist",
      .str_user_error        = "Election group not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7032, Election group not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7032, Election group not exist"
};
static const _error _error_OB_UNEXPECT_EG_VERSION = {
      .error_name            = "OB_UNEXPECT_EG_VERSION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unexpected eg_version",
      .str_user_error        = "unexpected eg_version",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7033, unexpected eg_version",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7033, unexpected eg_version"
};
static const _error _error_OB_ELECTION_GROUP_MGR_IS_RUNNING = {
      .error_name            = "OB_ELECTION_GROUP_MGR_IS_RUNNING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "election_group_mgr is running",
      .str_user_error        = "election_group_mgr is running",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7034, election_group_mgr is running",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7034, election_group_mgr is running"
};
static const _error _error_OB_ELECTION_MGR_NOT_RUNNING = {
      .error_name            = "OB_ELECTION_MGR_NOT_RUNNING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Election manager is not running",
      .str_user_error        = "Election manager is not running",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7035, Election manager is not running",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7035, Election manager is not running"
};
static const _error _error_OB_ELECTION_ERROR_VOTE_MSG_CONFLICT = {
      .error_name            = "OB_ELECTION_ERROR_VOTE_MSG_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Receive change leader msg and vote msg with same T1 timestamp",
      .str_user_error        = "Receive change leader msg and vote msg with same T1 timestamp",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7036, Receive change leader msg and vote msg with same T1 timestamp",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7036, Receive change leader msg and vote msg with same T1 timestamp"
};
static const _error _error_OB_ELECTION_ERROR_DUPLICATED_MSG = {
      .error_name            = "OB_ELECTION_ERROR_DUPLICATED_MSG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Receive duplicated prepare/vote msg with same T1 timestamp",
      .str_user_error        = "Receive duplicated prepare/vote msg with same T1 timestamp",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7037, Receive duplicated prepare/vote msg with same T1 timestamp",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7037, Receive duplicated prepare/vote msg with same T1 timestamp"
};
static const _error _error_OB_ELECTION_WARN_T1_NOT_MATCH = {
      .error_name            = "OB_ELECTION_WARN_T1_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "T1 timestamp is not match",
      .str_user_error        = "T1 timestamp is not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7038, T1 timestamp is not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7038, T1 timestamp is not match"
};
static const _error _error_OB_ELECTION_BELOW_MAJORITY = {
      .error_name            = "OB_ELECTION_BELOW_MAJORITY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not reach majority",
      .str_user_error        = "not reach majority",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7039, not reach majority",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7039, not reach majority"
};
static const _error _error_OB_ELECTION_OVER_MAJORITY = {
      .error_name            = "OB_ELECTION_OVER_MAJORITY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "over majority",
      .str_user_error        = "over majority",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7040, over majority",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7040, over majority"
};
static const _error _error_OB_ELECTION_DURING_UPGRADING = {
      .error_name            = "OB_ELECTION_DURING_UPGRADING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "election priority mechanism changed, maybe during upgrading",
      .str_user_error        = "election priority mechanism changed, maybe during upgrading",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7041, election priority mechanism changed, maybe during upgrading",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7041, election priority mechanism changed, maybe during upgrading"
};
static const _error _error_OB_TRANSFER_TASK_COMPLETED = {
      .error_name            = "OB_TRANSFER_TASK_COMPLETED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transfer task completed",
      .str_user_error        = "transfer task completed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7100, transfer task completed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7100, transfer task completed"
};
static const _error _error_OB_TOO_MANY_TRANSFER_TASK = {
      .error_name            = "OB_TOO_MANY_TRANSFER_TASK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "too many transfer tasks",
      .str_user_error        = "too many transfer tasks",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7101, too many transfer tasks",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7101, too many transfer tasks"
};
static const _error _error_OB_TRANSFER_TASK_EXIST = {
      .error_name            = "OB_TRANSFER_TASK_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transfer task exist",
      .str_user_error        = "transfer task exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7102, transfer task exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7102, transfer task exist"
};
static const _error _error_OB_TRANSFER_TASK_NOT_EXIST = {
      .error_name            = "OB_TRANSFER_TASK_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transfer task not exist",
      .str_user_error        = "transfer task not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7103, transfer task not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7103, transfer task not exist"
};
static const _error _error_OB_NOT_ALLOW_TO_REMOVE = {
      .error_name            = "OB_NOT_ALLOW_TO_REMOVE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "not allow to remove",
      .str_user_error        = "not allow to remove",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7104, not allow to remove",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7104, not allow to remove"
};
static const _error _error_OB_RG_NOT_MATCH = {
      .error_name            = "OB_RG_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "replication group not match",
      .str_user_error        = "replication group not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7105, replication group not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7105, replication group not match"
};
static const _error _error_OB_TRANSFER_TASK_ABORTED = {
      .error_name            = "OB_TRANSFER_TASK_ABORTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transfer task aborted",
      .str_user_error        = "transfer task aborted",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7106, transfer task aborted",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7106, transfer task aborted"
};
static const _error _error_OB_TRANSFER_INVALID_MESSAGE = {
      .error_name            = "OB_TRANSFER_INVALID_MESSAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transfer invalid message",
      .str_user_error        = "transfer invalid message",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7107, transfer invalid message",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7107, transfer invalid message"
};
static const _error _error_OB_TRANSFER_CTX_TS_NOT_MATCH = {
      .error_name            = "OB_TRANSFER_CTX_TS_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transfer ctx_ts not match",
      .str_user_error        = "transfer ctx_ts not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7108, transfer ctx_ts not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7108, transfer ctx_ts not match"
};
static const _error _error_OB_TRANSFER_SYS_ERROR = {
      .error_name            = "OB_TRANSFER_SYS_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transfer system error",
      .str_user_error        = "transfer system error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7109, transfer system error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7109, transfer system error"
};
static const _error _error_OB_TRANSFER_MEMBER_LIST_NOT_SAME = {
      .error_name            = "OB_TRANSFER_MEMBER_LIST_NOT_SAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transfer src ls and dest ls member list not same",
      .str_user_error        = "transfer src ls and dest ls member list not same",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7110, transfer src ls and dest ls member list not same",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7110, transfer src ls and dest ls member list not same"
};
static const _error _error_OB_ERR_UNEXPECTED_LOCK_OWNER = {
      .error_name            = "OB_ERR_UNEXPECTED_LOCK_OWNER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "lock owner id is not expected",
      .str_user_error        = "lock owner id is not expected",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7111, lock owner id is not expected",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7111, lock owner id is not expected"
};
static const _error _error_OB_LS_TRANSFER_SCN_TOO_SMALL = {
      .error_name            = "OB_LS_TRANSFER_SCN_TOO_SMALL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "change member list compare ls transfer scn too small",
      .str_user_error        = "change member list compare ls transfer scn too small",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7112, change member list compare ls transfer scn too small",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7112, change member list compare ls transfer scn too small"
};
static const _error _error_OB_TABLET_TRANSFER_SEQ_NOT_MATCH = {
      .error_name            = "OB_TABLET_TRANSFER_SEQ_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "compare tablet transfer seq not match",
      .str_user_error        = "compare tablet transfer seq not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7113, compare tablet transfer seq not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7113, compare tablet transfer seq not match"
};
static const _error _error_OB_TRANSFER_DETECT_ACTIVE_TRANS = {
      .error_name            = "OB_TRANSFER_DETECT_ACTIVE_TRANS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transfer detect active trans",
      .str_user_error        = "transfer detect active trans",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7114, transfer detect active trans",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7114, transfer detect active trans"
};
static const _error _error_OB_TRANSFER_SRC_LS_NOT_EXIST = {
      .error_name            = "OB_TRANSFER_SRC_LS_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transfer src ls does not exist",
      .str_user_error        = "transfer src ls does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7115, transfer src ls does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7115, transfer src ls does not exist"
};
static const _error _error_OB_TRANSFER_SRC_TABLET_NOT_EXIST = {
      .error_name            = "OB_TRANSFER_SRC_TABLET_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transfer src tablet does not exist",
      .str_user_error        = "transfer src tablet does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7116, transfer src tablet does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7116, transfer src tablet does not exist"
};
static const _error _error_OB_LS_NEED_REBUILD = {
      .error_name            = "OB_LS_NEED_REBUILD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ls need rebuild",
      .str_user_error        = "ls need rebuild",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7117, ls need rebuild",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7117, ls need rebuild"
};
static const _error _error_OB_OBSOLETE_CLOG_NEED_SKIP = {
      .error_name            = "OB_OBSOLETE_CLOG_NEED_SKIP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "obsolete clog need skip",
      .str_user_error        = "obsolete clog need skip",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7118, obsolete clog need skip",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7118, obsolete clog need skip"
};
static const _error _error_OB_TRANSFER_WAIT_TRANSACTION_END_TIMEOUT = {
      .error_name            = "OB_TRANSFER_WAIT_TRANSACTION_END_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transfer wait transactions end timeout",
      .str_user_error        = "transfer wait transactions end timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7119, transfer wait transactions end timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7119, transfer wait transactions end timeout"
};
static const _error _error_OB_TABLET_GC_LOCK_CONFLICT = {
      .error_name            = "OB_TABLET_GC_LOCK_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "tablet GC lock conflict",
      .str_user_error        = "tablet GC lock conflict",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7120, tablet GC lock conflict",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7120, tablet GC lock conflict"
};
static const _error _error_OB_SEQUENCE_NOT_MATCH = {
      .error_name            = "OB_SEQUENCE_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "compare sequence not match",
      .str_user_error        = "compare sequence not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7121, compare sequence not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7121, compare sequence not match"
};
static const _error _error_OB_SEQUENCE_TOO_SMALL = {
      .error_name            = "OB_SEQUENCE_TOO_SMALL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "compare sequence too small",
      .str_user_error        = "compare sequence too small",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7122, compare sequence too small",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7122, compare sequence too small"
};
static const _error _error_OB_TRANSFER_CANNOT_START = {
      .error_name            = "OB_TRANSFER_CANNOT_START",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "transfer cannot start",
      .str_user_error        = "transfer cannot start",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -7123, transfer cannot start",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -7123, transfer cannot start"
};
static const _error _error_OB_ERR_GIS_DIFFERENT_SRIDS = {
      .error_name            = "OB_ERR_GIS_DIFFERENT_SRIDS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_GIS_DIFFERENT_SRIDS,
      .sqlstate              = "HY000",
      .str_error             = "Binary geometry function given two geometries of different srids.",
      .str_user_error        = "Binary geometry function %s given two geometries of different srids: %u and %u, which should have been identical.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Binary geometry function given two geometries of different srids.",
      .oracle_str_user_error = "ORA-00600: Binary geometry function %s given two geometries of different srids: %u and %u, which should have been identical."
};
static const _error _error_OB_ERR_GIS_UNSUPPORTED_ARGUMENT = {
      .error_name            = "OB_ERR_GIS_UNSUPPORTED_ARGUMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_GIS_UNSUPPORTED_ARGUMENT,
      .sqlstate              = "HY000",
      .str_error             = "Calling geometry function with unsupported types of arguments.",
      .str_user_error        = "Calling geometry function %s with unsupported types of arguments.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Calling geometry function with unsupported types of arguments.",
      .oracle_str_user_error = "ORA-00600: Calling geometry function %s with unsupported types of arguments."
};
static const _error _error_OB_ERR_GIS_UNKNOWN_ERROR = {
      .error_name            = "OB_ERR_GIS_UNKNOWN_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_GIS_UNKNOWN_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Unknown GIS error occurred in function.",
      .str_user_error        = "Unknown GIS error occurred in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Unknown GIS error occurred in function.",
      .oracle_str_user_error = "ORA-00600: Unknown GIS error occurred in function %s."
};
static const _error _error_OB_ERR_GIS_UNKNOWN_EXCEPTION = {
      .error_name            = "OB_ERR_GIS_UNKNOWN_EXCEPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_GIS_UNKNOWN_EXCEPTION,
      .sqlstate              = "HY000",
      .str_error             = "Unknown exception caught in GIS function.",
      .str_user_error        = "Unknown exception caught in GIS function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Unknown exception caught in GIS function.",
      .oracle_str_user_error = "ORA-00600: Unknown exception caught in GIS function %s."
};
static const _error _error_OB_ERR_GIS_INVALID_DATA = {
      .error_name            = "OB_ERR_GIS_INVALID_DATA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_GIS_INVALID_DATA,
      .sqlstate              = "22023",
      .str_error             = "Invalid GIS data provided to function.",
      .str_user_error        = "Invalid GIS data provided to function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Invalid GIS data provided to function.",
      .oracle_str_user_error = "ORA-00600: Invalid GIS data provided to function %s."
};
static const _error _error_OB_ERR_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION = {
      .error_name            = "OB_ERR_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION,
      .sqlstate              = "HY000",
      .str_error             = "The geometry has no data in function.",
      .str_user_error        = "The geometry has no data in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The geometry has no data in function.",
      .oracle_str_user_error = "ORA-00600: The geometry has no data in function %s."
};
static const _error _error_OB_ERR_BOOST_GEOMETRY_CENTROID_EXCEPTION = {
      .error_name            = "OB_ERR_BOOST_GEOMETRY_CENTROID_EXCEPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_BOOST_GEOMETRY_CENTROID_EXCEPTION,
      .sqlstate              = "HY000",
      .str_error             = "Unable to calculate centroid because geometry is empty in function.",
      .str_user_error        = "Unable to calculate centroid because geometry is empty in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Unable to calculate centroid because geometry is empty in function.",
      .oracle_str_user_error = "ORA-00600: Unable to calculate centroid because geometry is empty in function %s."
};
static const _error _error_OB_ERR_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION = {
      .error_name            = "OB_ERR_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION,
      .sqlstate              = "HY000",
      .str_error             = "Geometry overlay calculation error: geometry data is invalid in function.",
      .str_user_error        = "Geometry overlay calculation error: geometry data is invalid in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Geometry overlay calculation error: geometry data is invalid in function.",
      .oracle_str_user_error = "ORA-00600: Geometry overlay calculation error: geometry data is invalid in function %s."
};
static const _error _error_OB_ERR_BOOST_GEOMETRY_TURN_INFO_EXCEPTION = {
      .error_name            = "OB_ERR_BOOST_GEOMETRY_TURN_INFO_EXCEPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_BOOST_GEOMETRY_TURN_INFO_EXCEPTION,
      .sqlstate              = "HY000",
      .str_error             = "Geometry turn info calculation error: geometry data is invalid in function.",
      .str_user_error        = "Geometry turn info calculation error: geometry data is invalid in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Geometry turn info calculation error: geometry data is invalid in function.",
      .oracle_str_user_error = "ORA-00600: Geometry turn info calculation error: geometry data is invalid in function %s."
};
static const _error _error_OB_ERR_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION = {
      .error_name            = "OB_ERR_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION,
      .sqlstate              = "HY000",
      .str_error             = "Analysis procedures of intersection points interrupted unexpectedly in function.",
      .str_user_error        = "Analysis procedures of intersection points interrupted unexpectedly in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Analysis procedures of intersection points interrupted unexpectedly in function.",
      .oracle_str_user_error = "ORA-00600: Analysis procedures of intersection points interrupted unexpectedly in function %s."
};
static const _error _error_OB_ERR_BOOST_GEOMETRY_UNKNOWN_EXCEPTION = {
      .error_name            = "OB_ERR_BOOST_GEOMETRY_UNKNOWN_EXCEPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_BOOST_GEOMETRY_UNKNOWN_EXCEPTION,
      .sqlstate              = "HY000",
      .str_error             = "Unknown exception thrown in function.",
      .str_user_error        = "Unknown exception thrown in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Unknown exception thrown in function.",
      .oracle_str_user_error = "ORA-00600: Unknown exception thrown in function %s."
};
static const _error _error_OB_ERR_GIS_DATA_WRONG_ENDIANESS = {
      .error_name            = "OB_ERR_GIS_DATA_WRONG_ENDIANESS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_GIS_DATA_WRONG_ENDIANESS,
      .sqlstate              = "HY000",
      .str_error             = "Geometry byte string must be little endian.",
      .str_user_error        = "Geometry byte string must be little endian.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Geometry byte string must be little endian.",
      .oracle_str_user_error = "ORA-00600: Geometry byte string must be little endian."
};
static const _error _error_OB_ERR_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS = {
      .error_name            = "OB_ERR_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS,
      .sqlstate              = "HY000",
      .str_error             = "Do not support online operation on table with GIS index",
      .str_user_error        = "Do not support online operation on table with GIS index",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Do not support online operation on table with GIS index",
      .oracle_str_user_error = "ORA-00600: Do not support online operation on table with GIS index"
};
static const _error _error_OB_ERR_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION = {
      .error_name            = "OB_ERR_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION,
      .sqlstate              = "HY000",
      .str_error             = "Inconsistent intersection points.",
      .str_user_error        = "Inconsistent intersection points.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Inconsistent intersection points.",
      .oracle_str_user_error = "ORA-00600: Inconsistent intersection points."
};
static const _error _error_OB_ERR_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED = {
      .error_name            = "OB_ERR_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED,
      .sqlstate              = "HY000",
      .str_error             = "Parameter exceeds the maximum number of points in a geometryin function.",
      .str_user_error        = "Parameter %s exceeds the maximum number of points in a geometry (%lu) in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Parameter exceeds the maximum number of points in a geometry in function.",
      .oracle_str_user_error = "ORA-00600: Parameter %s exceeds the maximum number of points in a geometry (%lu) in function %s."
};
static const _error _error_OB_ERR_UNEXPECTED_GEOMETRY_TYPE = {
      .error_name            = "OB_ERR_UNEXPECTED_GEOMETRY_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNEXPECTED_GEOMETRY_TYPE,
      .sqlstate              = "22S01",
      .str_error             = "value is a geometry of unexpected type",
      .str_user_error        = "%.64s value is a geometry of unexpected type %.64s in %.64s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Invalid value type",
      .oracle_str_user_error = "ORA-00600: %.64s value is a geometry of unexpected type %.64s in %.64s."
};
static const _error _error_OB_ERR_SRS_PARSE_ERROR = {
      .error_name            = "OB_ERR_SRS_PARSE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_PARSE_ERROR,
      .sqlstate              = "SR002",
      .str_error             = "Can\'t parse the spatial reference system definition of SRID.",
      .str_user_error        = "Can\'t parse the spatial reference system definition of SRID %u.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Can\'t parse the spatial reference system definition of SRID.",
      .oracle_str_user_error = "ORA-00600: Can\'t parse the spatial reference system definition of SRID %u."
};
static const _error _error_OB_ERR_SRS_PROJ_PARAMETER_MISSING = {
      .error_name            = "OB_ERR_SRS_PROJ_PARAMETER_MISSING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_PROJ_PARAMETER_MISSING,
      .sqlstate              = "SR003",
      .str_error             = "The spatial reference system definition for SRID does not specify the mandatory (EPSG) projection parameter.",
      .str_user_error        = "The spatial reference system definition for SRID %u does not specify the mandatory %s (EPSG %u) projection parameter.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The spatial reference system definition for SRID does not specify the mandatory (EPSG) projection parameter.",
      .oracle_str_user_error = "ORA-00600: The spatial reference system definition for SRID %u does not specify the mandatory %s (EPSG %u) projection parameter."
};
static const _error _error_OB_ERR_WARN_SRS_NOT_FOUND = {
      .error_name            = "OB_ERR_WARN_SRS_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_SRS_NOT_FOUND,
      .sqlstate              = "01000",
      .str_error             = "There\'s no spatial reference system with SRID.",
      .str_user_error        = "There\'s no spatial reference system with SRID %u.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: There\'s no spatial reference system with SRID.",
      .oracle_str_user_error = "ORA-00600: There\'s no spatial reference system with SRID %u."
};
static const _error _error_OB_ERR_SRS_NOT_CARTESIAN = {
      .error_name            = "OB_ERR_SRS_NOT_CARTESIAN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_NOT_CARTESIAN,
      .sqlstate              = "22S00",
      .str_error             = "Function %s is only defined for Cartesian spatial reference systems, but one of its arguments is in SRID %u, which is not Cartesian.",
      .str_user_error        = "Function %s is only defined for Cartesian spatial reference systems, but one of its arguments is in SRID %u, which is not Cartesian.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Function is only defined for Cartesian spatial reference systems, but one of its arguments is in SRID, which is not Cartesian.",
      .oracle_str_user_error = "ORA-00600: Function %s is only defined for Cartesian spatial reference systems, but one of its arguments is in SRID %u, which is not Cartesian."
};
static const _error _error_OB_ERR_SRS_NOT_CARTESIAN_UNDEFINED = {
      .error_name            = "OB_ERR_SRS_NOT_CARTESIAN_UNDEFINED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_NOT_CARTESIAN_UNDEFINED,
      .sqlstate              = "SR001",
      .str_error             = "Function is only defined for Cartesian spatial reference systems, but one of its arguments is in SRID, which has not been defined.",
      .str_user_error        = "Function %s is only defined for Cartesian spatial reference systems, but one of its arguments is in SRID %u, which has not been defined.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Function is only defined for Cartesian spatial reference systems, but one of its arguments is in SRID, which has not been defined.",
      .oracle_str_user_error = "ORA-00600: Function %s is only defined for Cartesian spatial reference systems, but one of its arguments is in SRID %u, which has not been defined."
};
static const _error _error_OB_ERR_SRS_NOT_FOUND = {
      .error_name            = "OB_ERR_SRS_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_NOT_FOUND,
      .sqlstate              = "SR001",
      .str_error             = "There\'s no spatial reference system with SRID.",
      .str_user_error        = "There\'s no spatial reference system with SRID %u.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: There\'s no spatial reference system with SRID.",
      .oracle_str_user_error = "ORA-00600: There\'s no spatial reference system with SRID %u."
};
static const _error _error_OB_ERR_WARN_SRS_NOT_FOUND_AXIS_ORDER = {
      .error_name            = "OB_ERR_WARN_SRS_NOT_FOUND_AXIS_ORDER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_SRS_NOT_FOUND_AXIS_ORDER,
      .sqlstate              = "01000",
      .str_error             = "There\'s no spatial reference system with SRID. The axis order is unknown.",
      .str_user_error        = "There\'s no spatial reference system with SRID %u. The axis order is unknown.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: There\'s no spatial reference system with SRID. The axis order is unknown.",
      .oracle_str_user_error = "ORA-00600: There\'s no spatial reference system with SRID %u. The axis order is unknown."
};
static const _error _error_OB_ERR_NOT_IMPLEMENTED_FOR_GEOGRAPHIC_SRS = {
      .error_name            = "OB_ERR_NOT_IMPLEMENTED_FOR_GEOGRAPHIC_SRS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NOT_IMPLEMENTED_FOR_GEOGRAPHIC_SRS,
      .sqlstate              = "22S00",
      .str_error             = "It has not been implemented for geographic spatial reference systems.",
      .str_user_error        = "%.192s(%.80s) has not been implemented for geographic spatial reference systems.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: It has not been implemented for geographic spatial reference systems.",
      .oracle_str_user_error = "ORA-00600: %.192s(%.80s) has not been implemented for geographic spatial reference systems."
};
static const _error _error_OB_ERR_WRONG_SRID_FOR_COLUMN = {
      .error_name            = "OB_ERR_WRONG_SRID_FOR_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_SRID_FOR_COLUMN,
      .sqlstate              = "HY000",
      .str_error             = "The SRID of the geometry does not match the SRID of the column.",
      .str_user_error        = "The SRID of the geometry does not match the SRID of the column. The SRID of the geometry is %lu, but the SRID of the column is %lu. Consider changing the SRID of the geometry or the SRID property of the column.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The SRID of the geometry does not match the SRID of the column.",
      .oracle_str_user_error = "ORA-00600: The SRID of the geometry does not match the SRID of the column. The SRID of the geometry is %lu, but the SRID of the column is %lu. Consider changing the SRID of the geometry or the SRID property of the column."
};
static const _error _error_OB_ERR_CANNOT_ALTER_SRID_DUE_TO_INDEX = {
      .error_name            = "OB_ERR_CANNOT_ALTER_SRID_DUE_TO_INDEX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANNOT_ALTER_SRID_DUE_TO_INDEX,
      .sqlstate              = "HY000",
      .str_error             = "The SRID specification on the column cannot be changed because there is a spatial index on the column.",
      .str_user_error        = "The SRID specification on the column \'%.64s\' cannot be changed because there is a spatial index on the column. Please remove the spatial index before altering the SRID specification.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The SRID specification on the column cannot be changed because there is a spatial index on the column.",
      .oracle_str_user_error = "ORA-00600: The SRID specification on the column \'%.64s\' cannot be changed because there is a spatial index on the column. Please remove the spatial index before altering the SRID specification."
};
static const _error _error_OB_ERR_WARN_USELESS_SPATIAL_INDEX = {
      .error_name            = "OB_ERR_WARN_USELESS_SPATIAL_INDEX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_USELESS_SPATIAL_INDEX,
      .sqlstate              = "HY000",
      .str_error             = "The spatial index on column will not be used by the query optimizer since the column does not have an SRID attribute.",
      .str_user_error        = "The spatial index on column \'%.64s\' will not be used by the query optimizer since the column does not have an SRID attribute. Consider adding an SRID attribute to the column.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The spatial index on column will not be used by the query optimizer since the column does not have an SRID attribute.",
      .oracle_str_user_error = "ORA-00600: The spatial index on column \'%.64s\' will not be used by the query optimizer since the column does not have an SRID attribute. Consider adding an SRID attribute to the column."
};
static const _error _error_OB_ERR_ONLY_IMPLEMENTED_FOR_SRID_0_AND_4326 = {
      .error_name            = "OB_ERR_ONLY_IMPLEMENTED_FOR_SRID_0_AND_4326",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_ONLY_IMPLEMENTED_FOR_SRID_0_AND_4326,
      .sqlstate              = "22S00",
      .str_error             = "Function is only defined for SRID 0 and SRID 4326.",
      .str_user_error        = "Function %.192s is only defined for SRID 0 and SRID 4326.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Function is only defined for SRID 0 and SRID 4326.",
      .oracle_str_user_error = "ORA-00600: Function %.192s is only defined for SRID 0 and SRID 4326."
};
static const _error _error_OB_ERR_NOT_IMPLEMENTED_FOR_CARTESIAN_SRS = {
      .error_name            = "OB_ERR_NOT_IMPLEMENTED_FOR_CARTESIAN_SRS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NOT_IMPLEMENTED_FOR_CARTESIAN_SRS,
      .sqlstate              = "22S00",
      .str_error             = "It has not been implemented for Cartesian spatial reference systems.",
      .str_user_error        = "%.192s(%.80s) has not been implemented for Cartesian spatial reference systems.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: It has not been implemented for Cartesian spatial reference systems.",
      .oracle_str_user_error = "ORA-00600: %.192s(%.80s) has not been implemented for Cartesian spatial reference systems."
};
static const _error _error_OB_ERR_NOT_IMPLEMENTED_FOR_PROJECTED_SRS = {
      .error_name            = "OB_ERR_NOT_IMPLEMENTED_FOR_PROJECTED_SRS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NOT_IMPLEMENTED_FOR_PROJECTED_SRS,
      .sqlstate              = "22S00",
      .str_error             = "It has not been implemented for projected spatial reference systems.",
      .str_user_error        = "%.192s(%.80s) has not been implemented for projected spatial reference systems.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: It has not been implemented for projected spatial reference systems.",
      .oracle_str_user_error = "ORA-00600: %.192s(%.80s) has not been implemented for projected spatial reference systems."
};
static const _error _error_OB_ERR_SRS_MISSING_MANDATORY_ATTRIBUTE = {
      .error_name            = "OB_ERR_SRS_MISSING_MANDATORY_ATTRIBUTE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_MISSING_MANDATORY_ATTRIBUTE,
      .sqlstate              = "SR006",
      .str_error             = "Missing mandatory attribute.",
      .str_user_error        = "Missing mandatory attribute %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Missing mandatory attribute.",
      .oracle_str_user_error = "ORA-00600: Missing mandatory attribute %s."
};
static const _error _error_OB_ERR_SRS_MULTIPLE_ATTRIBUTE_DEFINITIONS = {
      .error_name            = "OB_ERR_SRS_MULTIPLE_ATTRIBUTE_DEFINITIONS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_MULTIPLE_ATTRIBUTE_DEFINITIONS,
      .sqlstate              = "SR006",
      .str_error             = "Multiple definitions of attribute.",
      .str_user_error        = "Multiple definitions of attribute %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Multiple definitions of attribute.",
      .oracle_str_user_error = "ORA-00600: Multiple definitions of attribute %s."
};
static const _error _error_OB_ERR_SRS_NAME_CANT_BE_EMPTY_OR_WHITESPACE = {
      .error_name            = "OB_ERR_SRS_NAME_CANT_BE_EMPTY_OR_WHITESPACE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_NAME_CANT_BE_EMPTY_OR_WHITESPACE,
      .sqlstate              = "SR006",
      .str_error             = "The spatial reference system name can\'t be an empty string or start or end with whitespace.",
      .str_user_error        = "The spatial reference system name can\'t be an empty string or start or end with whitespace.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The spatial reference system name can\'t be an empty string or start or end with whitespace.",
      .oracle_str_user_error = "ORA-00600: The spatial reference system name can\'t be an empty string or start or end with whitespace."
};
static const _error _error_OB_ERR_SRS_ORGANIZATION_CANT_BE_EMPTY_OR_WHITESPACE = {
      .error_name            = "OB_ERR_SRS_ORGANIZATION_CANT_BE_EMPTY_OR_WHITESPACE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_ORGANIZATION_CANT_BE_EMPTY_OR_WHITESPACE,
      .sqlstate              = "SR006",
      .str_error             = "The organization name can\'t be an empty string or start or end with whitespace.",
      .str_user_error        = "The organization name can\'t be an empty string or start or end with whitespace.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The organization name can\'t be an empty string or start or end with whitespace.",
      .oracle_str_user_error = "ORA-00600: The organization name can\'t be an empty string or start or end with whitespace."
};
static const _error _error_OB_ERR_SRS_ID_ALREADY_EXISTS = {
      .error_name            = "OB_ERR_SRS_ID_ALREADY_EXISTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_ID_ALREADY_EXISTS,
      .sqlstate              = "SR004",
      .str_error             = "There is already a spatial reference system with SRID.",
      .str_user_error        = "There is already a spatial reference system with SRID %u.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: There is already a spatial reference system with SRID.",
      .oracle_str_user_error = "ORA-00600: There is already a spatial reference system with SRID %u."
};
static const _error _error_OB_ERR_WARN_SRS_ID_ALREADY_EXISTS = {
      .error_name            = "OB_ERR_WARN_SRS_ID_ALREADY_EXISTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_SRS_ID_ALREADY_EXISTS,
      .sqlstate              = "01S00",
      .str_error             = "There is already a spatial reference system with SRID.",
      .str_user_error        = "There is already a spatial reference system with SRID %u.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: There is already a spatial reference system with SRID.",
      .oracle_str_user_error = "ORA-00600: There is already a spatial reference system with SRID %u."
};
static const _error _error_OB_ERR_CANT_MODIFY_SRID_0 = {
      .error_name            = "OB_ERR_CANT_MODIFY_SRID_0",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_MODIFY_SRID_0,
      .sqlstate              = "SR000",
      .str_error             = "SRID 0 is not modifiable.",
      .str_user_error        = "SRID 0 is not modifiable.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: SRID 0 is not modifiable.",
      .oracle_str_user_error = "ORA-00600: SRID 0 is not modifiable."
};
static const _error _error_OB_ERR_WARN_RESERVED_SRID_RANGE = {
      .error_name            = "OB_ERR_WARN_RESERVED_SRID_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WARN_RESERVED_SRID_RANGE,
      .sqlstate              = "01S01",
      .str_error             = "The SRID range has been reserved for system use. SRSs in this range may be added, modified or removed without warning during upgrade.",
      .str_user_error        = "The SRID range [%u, %u] has been reserved for system use. SRSs in this range may be added, modified or removed without warning during upgrade.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The SRID range has been reserved for system use. SRSs in this range may be added, modified or removed without warning during upgrade.",
      .oracle_str_user_error = "ORA-00600: The SRID range [%u, %u] has been reserved for system use. SRSs in this range may be added, modified or removed without warning during upgrade."
};
static const _error _error_OB_ERR_CANT_MODIFY_SRS_USED_BY_COLUMN = {
      .error_name            = "OB_ERR_CANT_MODIFY_SRS_USED_BY_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_MODIFY_SRS_USED_BY_COLUMN,
      .sqlstate              = "SR005",
      .str_error             = "Can\'t modify SRID. There is at least one column depending on it.",
      .str_user_error        = "Can\'t modify SRID %u. There is at least one column depending on it.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Can\'t modify SRID. There is at least one column depending on it.",
      .oracle_str_user_error = "ORA-00600: Can\'t modify SRID %u. There is at least one column depending on it."
};
static const _error _error_OB_ERR_SRS_INVALID_CHARACTER_IN_ATTRIBUTE = {
      .error_name            = "OB_ERR_SRS_INVALID_CHARACTER_IN_ATTRIBUTE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_INVALID_CHARACTER_IN_ATTRIBUTE,
      .sqlstate              = "SR006",
      .str_error             = "Invalid character in attribute.",
      .str_user_error        = "Invalid character in attribute %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Invalid character in attribute.",
      .oracle_str_user_error = "ORA-00600: Invalid character in attribute %s."
};
static const _error _error_OB_ERR_SRS_ATTRIBUTE_STRING_TOO_LONG = {
      .error_name            = "OB_ERR_SRS_ATTRIBUTE_STRING_TOO_LONG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_ATTRIBUTE_STRING_TOO_LONG,
      .sqlstate              = "SR006",
      .str_error             = "Attribute is too long.",
      .str_user_error        = "Attribute %s is too long. The maximum length is %u characters.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Attribute is too long.",
      .oracle_str_user_error = "ORA-00600: Attribute %s is too long. The maximum length is %u characters."
};
static const _error _error_OB_ERR_SRS_NOT_GEOGRAPHIC = {
      .error_name            = "OB_ERR_SRS_NOT_GEOGRAPHIC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_NOT_GEOGRAPHIC,
      .sqlstate              = "22S00",
      .str_error             = "Function is only defined for geographic spatial reference systems, but one of its arguments is in SRID, which is not geographic.",
      .str_user_error        = "Function %s is only defined for geographic spatial reference systems, but one of its arguments is in SRID %u, which is not geographic.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Function is only defined for geographic spatial reference systems, but one of its arguments is in SRID, which is not geographic.",
      .oracle_str_user_error = "ORA-00600: Function %s is only defined for geographic spatial reference systems, but one of its arguments is in SRID %u, which is not geographic."
};
static const _error _error_OB_ERR_POLYGON_TOO_LARGE = {
      .error_name            = "OB_ERR_POLYGON_TOO_LARGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_POLYGON_TOO_LARGE,
      .sqlstate              = "22023",
      .str_error             = "Function encountered a polygon that was too large. Polygons must cover less than half the planet.",
      .str_user_error        = "Function %s encountered a polygon that was too large. Polygons must cover less than half the planet.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Function encountered a polygon that was too large. Polygons must cover less than half the planet.",
      .oracle_str_user_error = "ORA-00600: Function %s encountered a polygon that was too large. Polygons must cover less than half the planet."
};
static const _error _error_OB_ERR_SPATIAL_UNIQUE_INDEX = {
      .error_name            = "OB_ERR_SPATIAL_UNIQUE_INDEX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SPATIAL_UNIQUE_INDEX,
      .sqlstate              = "HY000",
      .str_error             = "Spatial indexes can\'t be primary or unique indexes.",
      .str_user_error        = "Spatial indexes can\'t be primary or unique indexes.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Spatial indexes can\'t be primary or unique indexes.",
      .oracle_str_user_error = "ORA-00600: Spatial indexes can\'t be primary or unique indexes."
};
static const _error _error_OB_ERR_GEOMETRY_PARAM_LONGITUDE_OUT_OF_RANGE = {
      .error_name            = "OB_ERR_GEOMETRY_PARAM_LONGITUDE_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_GEOMETRY_PARAM_LONGITUDE_OUT_OF_RANGE,
      .sqlstate              = "22S02",
      .str_error             = "A parameter of function contains a geometry with longitude, which is out of range.",
      .str_user_error        = "A parameter of function %.192s contains a geometry with longitude %f, which is out of range. It must be within (%f, %f].",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: A parameter of function contains a geometry with longitude, which is out of range.",
      .oracle_str_user_error = "ORA-00600: A parameter of function %.192s contains a geometry with longitude %f, which is out of range. It must be within (%f, %f]."
};
static const _error _error_OB_ERR_GEOMETRY_PARAM_LATITUDE_OUT_OF_RANGE = {
      .error_name            = "OB_ERR_GEOMETRY_PARAM_LATITUDE_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_GEOMETRY_PARAM_LATITUDE_OUT_OF_RANGE,
      .sqlstate              = "22S03",
      .str_error             = "A parameter of function contains a geometry with latitude, which is out of range.",
      .str_user_error        = "A parameter of function %.192s contains a geometry with latitude %f, which is out of range. It must be within [%f, %f].",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: A parameter of function contains a geometry with latitude, which is out of range.",
      .oracle_str_user_error = "ORA-00600: A parameter of function %.192s contains a geometry with latitude %f, which is out of range. It must be within [%f, %f]."
};
static const _error _error_OB_ERR_SRS_GEOGCS_INVALID_AXES = {
      .error_name            = "OB_ERR_SRS_GEOGCS_INVALID_AXES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_GEOGCS_INVALID_AXES,
      .sqlstate              = "SR002",
      .str_error             = "The spatial reference system definition for SRID specifies invalid geographic axes. One axis must be NORTH or SOUTH and the other must be EAST or WEST.",
      .str_user_error        = "The spatial reference system definition for SRID %u specifies invalid geographic axes \'%.20s\' and \'%.20s\'. One axis must be NORTH or SOUTH and the other must be EAST or WEST.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The spatial reference system definition for SRID specifies invalid geographic axes. One axis must be NORTH or SOUTH and the other must be EAST or WEST.",
      .oracle_str_user_error = "ORA-00600: The spatial reference system definition for SRID %u specifies invalid geographic axes \'%.20s\' and \'%.20s\'. One axis must be NORTH or SOUTH and the other must be EAST or WEST."
};
static const _error _error_OB_ERR_SRS_INVALID_SEMI_MAJOR_AXIS = {
      .error_name            = "OB_ERR_SRS_INVALID_SEMI_MAJOR_AXIS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_INVALID_SEMI_MAJOR_AXIS,
      .sqlstate              = "SR002",
      .str_error             = "The length of the semi-major axis must be a positive number.",
      .str_user_error        = "The length of the semi-major axis must be a positive number.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The length of the semi-major axis must be a positive number.",
      .oracle_str_user_error = "ORA-00600: The length of the semi-major axis must be a positive number."
};
static const _error _error_OB_ERR_SRS_INVALID_INVERSE_FLATTENING = {
      .error_name            = "OB_ERR_SRS_INVALID_INVERSE_FLATTENING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_INVALID_INVERSE_FLATTENING,
      .sqlstate              = "SR002",
      .str_error             = "The inverse flattening must be larger than 1.0, or 0.0 if the ellipsoid is a sphere.",
      .str_user_error        = "The inverse flattening must be larger than 1.0, or 0.0 if the ellipsoid is a sphere.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The inverse flattening must be larger than 1.0, or 0.0 if the ellipsoid is a sphere.",
      .oracle_str_user_error = "ORA-00600: The inverse flattening must be larger than 1.0, or 0.0 if the ellipsoid is a sphere."
};
static const _error _error_OB_ERR_SRS_INVALID_ANGULAR_UNIT = {
      .error_name            = "OB_ERR_SRS_INVALID_ANGULAR_UNIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_INVALID_ANGULAR_UNIT,
      .sqlstate              = "SR002",
      .str_error             = "The angular unit conversion factor must be a positive number.",
      .str_user_error        = "The angular unit conversion factor must be a positive number.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The angular unit conversion factor must be a positive number.",
      .oracle_str_user_error = "ORA-00600: The angular unit conversion factor must be a positive number."
};
static const _error _error_OB_ERR_SRS_INVALID_PRIME_MERIDIAN = {
      .error_name            = "OB_ERR_SRS_INVALID_PRIME_MERIDIAN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_INVALID_PRIME_MERIDIAN,
      .sqlstate              = "SR002",
      .str_error             = "The prime meridian must be within (-180, 180] degrees, specified in the SRS angular unit.",
      .str_user_error        = "The prime meridian must be within (-180, 180] degrees, specified in the SRS angular unit.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The prime meridian must be within (-180, 180] degrees, specified in the SRS angular unit.",
      .oracle_str_user_error = "ORA-00600: The prime meridian must be within (-180, 180] degrees, specified in the SRS angular unit."
};
static const _error _error_OB_ERR_TRANSFORM_SOURCE_SRS_NOT_SUPPORTED = {
      .error_name            = "OB_ERR_TRANSFORM_SOURCE_SRS_NOT_SUPPORTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRANSFORM_SOURCE_SRS_NOT_SUPPORTED,
      .sqlstate              = "22S00",
      .str_error             = "Transformation from SRID is not supported.",
      .str_user_error        = "Transformation from SRID %u is not supported.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Transformation from SRID is not supported.",
      .oracle_str_user_error = "ORA-00600: Transformation from SRID %u is not supported."
};
static const _error _error_OB_ERR_TRANSFORM_TARGET_SRS_NOT_SUPPORTED = {
      .error_name            = "OB_ERR_TRANSFORM_TARGET_SRS_NOT_SUPPORTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRANSFORM_TARGET_SRS_NOT_SUPPORTED,
      .sqlstate              = "22S00",
      .str_error             = "Transformation to SRID %u is not supported.",
      .str_user_error        = "Transformation to SRID %u is not supported.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Transformation to SRID is not supported.",
      .oracle_str_user_error = "ORA-00600: Transformation to SRID %u is not supported."
};
static const _error _error_OB_ERR_TRANSFORM_SOURCE_SRS_MISSING_TOWGS84 = {
      .error_name            = "OB_ERR_TRANSFORM_SOURCE_SRS_MISSING_TOWGS84",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRANSFORM_SOURCE_SRS_MISSING_TOWGS84,
      .sqlstate              = "22S00",
      .str_error             = "Transformation from SRID is not supported. The spatial reference system has no TOWGS84 clause.",
      .str_user_error        = "Transformation from SRID %u is not supported. The spatial reference system has no TOWGS84 clause.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Transformation from SRID is not supported. The spatial reference system has no TOWGS84 clause.",
      .oracle_str_user_error = "ORA-00600: Transformation from SRID %u is not supported. The spatial reference system has no TOWGS84 clause."
};
static const _error _error_OB_ERR_TRANSFORM_TARGET_SRS_MISSING_TOWGS84 = {
      .error_name            = "OB_ERR_TRANSFORM_TARGET_SRS_MISSING_TOWGS84",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRANSFORM_TARGET_SRS_MISSING_TOWGS84,
      .sqlstate              = "22S00",
      .str_error             = "Transformation to SRID is not supported. The spatial reference system has no TOWGS84 clause.",
      .str_user_error        = "Transformation to SRID %u is not supported. The spatial reference system has no TOWGS84 clause.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Transformation to SRID is not supported. The spatial reference system has no TOWGS84 clause.",
      .oracle_str_user_error = "ORA-00600: Transformation to SRID %u is not supported. The spatial reference system has no TOWGS84 clause."
};
static const _error _error_OB_ERR_FUNCTIONAL_INDEX_ON_JSON_OR_GEOMETRY_FUNCTION = {
      .error_name            = "OB_ERR_FUNCTIONAL_INDEX_ON_JSON_OR_GEOMETRY_FUNCTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_FUNCTIONAL_INDEX_ON_JSON_OR_GEOMETRY_FUNCTION,
      .sqlstate              = "42000",
      .str_error             = "Cannot create a functional index on a function that returns a JSON or GEOMETRY value.",
      .str_user_error        = "Cannot create a functional index on a function that returns a JSON or GEOMETRY value.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Cannot create a functional index on a function that returns a JSON or GEOMETRY value.",
      .oracle_str_user_error = "ORA-00600: Cannot create a functional index on a function that returns a JSON or GEOMETRY value."
};
static const _error _error_OB_ERR_SPATIAL_FUNCTIONAL_INDEX = {
      .error_name            = "OB_ERR_SPATIAL_FUNCTIONAL_INDEX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SPATIAL_FUNCTIONAL_INDEX,
      .sqlstate              = "HY000",
      .str_error             = "Spatial functional index is not supported.",
      .str_user_error        = "Spatial functional index is not supported.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Spatial functional index is not supported.",
      .oracle_str_user_error = "ORA-00600: Spatial functional index is not supported."
};
static const _error _error_OB_ERR_GEOMETRY_IN_UNKNOWN_LENGTH_UNIT = {
      .error_name            = "OB_ERR_GEOMETRY_IN_UNKNOWN_LENGTH_UNIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_GEOMETRY_IN_UNKNOWN_LENGTH_UNIT,
      .sqlstate              = "SU001",
      .str_error             = "The geometry passed to function is in SRID 0, which doesn\'t specify a length unit. Can\'t convert.",
      .str_user_error        = "The geometry passed to function %s is in SRID 0, which doesn\'t specify a length unit. Can\'t convert to \'%s\'.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The geometry passed to function is in SRID 0, which doesn\'t specify a length unit. Can\'t convert.",
      .oracle_str_user_error = "ORA-00600: The geometry passed to function %s is in SRID 0, which doesn\'t specify a length unit. Can\'t convert to \'%s\'."
};
static const _error _error_OB_ERR_INVALID_CAST_TO_GEOMETRY = {
      .error_name            = "OB_ERR_INVALID_CAST_TO_GEOMETRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_CAST_TO_GEOMETRY,
      .sqlstate              = "22S01",
      .str_error             = "Invalid cast.",
      .str_user_error        = "Invalid cast from %s to %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Invalid cast.",
      .oracle_str_user_error = "ORA-00600: Invalid cast from %s to %s."
};
static const _error _error_OB_ERR_INVALID_CAST_POLYGON_RING_DIRECTION = {
      .error_name            = "OB_ERR_INVALID_CAST_POLYGON_RING_DIRECTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_CAST_POLYGON_RING_DIRECTION,
      .sqlstate              = "22S04",
      .str_error             = "Invalid cast. A polygon ring is in the wrong direction.",
      .str_user_error        = "Invalid cast from %s to %s. A polygon ring is in the wrong direction.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Invalid cast. A polygon ring is in the wrong direction.",
      .oracle_str_user_error = "ORA-00600: Invalid cast from %s to %s. A polygon ring is in the wrong direction."
};
static const _error _error_OB_ERR_GIS_DIFFERENT_SRIDS_AGGREGATION = {
      .error_name            = "OB_ERR_GIS_DIFFERENT_SRIDS_AGGREGATION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_GIS_DIFFERENT_SRIDS_AGGREGATION,
      .sqlstate              = "22S05",
      .str_error             = "Arguments to function contains geometries with different SRIDs. All geometries must have the same SRID.",
      .str_user_error        = "Arguments to function %s contains geometries with different SRIDs: %u and %u. All geometries must have the same SRID.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Arguments to function contains geometries with different SRIDs. All geometries must have the same SRID.",
      .oracle_str_user_error = "ORA-00600: Arguments to function %s contains geometries with different SRIDs: %u and %u. All geometries must have the same SRID."
};
static const _error _error_OB_ERR_LONGITUDE_OUT_OF_RANGE = {
      .error_name            = "OB_ERR_LONGITUDE_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_LONGITUDE_OUT_OF_RANGE,
      .sqlstate              = "22S02",
      .str_error             = "Longitude is out of range in function.",
      .str_user_error        = "Longitude %f is out of range in function %.192s. It must be within (%f, %f].",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Longitude is out of range in function.",
      .oracle_str_user_error = "ORA-00600: Longitude %f is out of range in function %.192s. It must be within (%f, %f]."
};
static const _error _error_OB_ERR_LATITUDE_OUT_OF_RANGE = {
      .error_name            = "OB_ERR_LATITUDE_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_LATITUDE_OUT_OF_RANGE,
      .sqlstate              = "22S03",
      .str_error             = "Latitude is out of range in function.",
      .str_user_error        = "Latitude %f is out of range in function %.192s. It must be within [%f, %f].",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Latitude is out of range in function.",
      .oracle_str_user_error = "ORA-00600: Latitude %f is out of range in function %.192s. It must be within [%f, %f]."
};
static const _error _error_OB_ERR_STD_BAD_ALLOC_ERROR = {
      .error_name            = "OB_ERR_STD_BAD_ALLOC_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_STD_BAD_ALLOC_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Memory allocation error",
      .str_user_error        = "Memory allocation error: %-.256s in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Memory allocation error",
      .oracle_str_user_error = "ORA-00600: Memory allocation error: %-.256s in function %s."
};
static const _error _error_OB_ERR_STD_DOMAIN_ERROR = {
      .error_name            = "OB_ERR_STD_DOMAIN_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_STD_DOMAIN_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Domain error",
      .str_user_error        = "Domain error: %-.256s in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Domain error",
      .oracle_str_user_error = "ORA-00600: Domain error: %-.256s in function %s."
};
static const _error _error_OB_ERR_STD_LENGTH_ERROR = {
      .error_name            = "OB_ERR_STD_LENGTH_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_STD_LENGTH_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Length error",
      .str_user_error        = "Length error: %-.256s in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Length error",
      .oracle_str_user_error = "ORA-00600: Length error: %-.256s in function %s."
};
static const _error _error_OB_ERR_STD_INVALID_ARGUMENT = {
      .error_name            = "OB_ERR_STD_INVALID_ARGUMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_STD_INVALID_ARGUMENT,
      .sqlstate              = "HY000",
      .str_error             = "Invalid argument error",
      .str_user_error        = "Invalid argument error: %-.256s in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Invalid argument error",
      .oracle_str_user_error = "ORA-00600: Invalid argument error: %-.256s in function %s."
};
static const _error _error_OB_ERR_STD_OUT_OF_RANGE_ERROR = {
      .error_name            = "OB_ERR_STD_OUT_OF_RANGE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_STD_OUT_OF_RANGE_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Out of range error",
      .str_user_error        = "Out of range error: %-.256s in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Out of range error",
      .oracle_str_user_error = "ORA-00600: Out of range error: %-.256s in function %s."
};
static const _error _error_OB_ERR_STD_OVERFLOW_ERROR = {
      .error_name            = "OB_ERR_STD_OVERFLOW_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_STD_OVERFLOW_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Overflow error",
      .str_user_error        = "Overflow error: %-.256s in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Overflow error",
      .oracle_str_user_error = "ORA-00600: Overflow error: %-.256s in function %s."
};
static const _error _error_OB_ERR_STD_RANGE_ERROR = {
      .error_name            = "OB_ERR_STD_RANGE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_STD_RANGE_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Range error",
      .str_user_error        = "Range error: %-.256s in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Range error",
      .oracle_str_user_error = "ORA-00600: Range error: %-.256s in function %s."
};
static const _error _error_OB_ERR_STD_UNDERFLOW_ERROR = {
      .error_name            = "OB_ERR_STD_UNDERFLOW_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_STD_UNDERFLOW_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Underflow error",
      .str_user_error        = "Underflow error: %-.256s in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Underflow error",
      .oracle_str_user_error = "ORA-00600: Underflow error: %-.256s in function %s."
};
static const _error _error_OB_ERR_STD_LOGIC_ERROR = {
      .error_name            = "OB_ERR_STD_LOGIC_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_STD_LOGIC_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Logic error",
      .str_user_error        = "Logic error: %-.256s in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Logic error",
      .oracle_str_user_error = "ORA-00600: Logic error: %-.256s in function %s."
};
static const _error _error_OB_ERR_STD_RUNTIME_ERROR = {
      .error_name            = "OB_ERR_STD_RUNTIME_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_STD_RUNTIME_ERROR,
      .sqlstate              = "HY000",
      .str_error             = "Runtime error",
      .str_user_error        = "Runtime error: %-.256s in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Runtime error",
      .oracle_str_user_error = "ORA-00600: Runtime error: %-.256s in function %s."
};
static const _error _error_OB_ERR_STD_UNKNOWN_EXCEPTION = {
      .error_name            = "OB_ERR_STD_UNKNOWN_EXCEPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_STD_UNKNOWN_EXCEPTION,
      .sqlstate              = "HY000",
      .str_error             = "Unknown exception",
      .str_user_error        = "Unknown exception: %-.384s in function %s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Unknown exception",
      .oracle_str_user_error = "ORA-00600: Unknown exception: %-.384s in function %s."
};
static const _error _error_OB_ERR_CANT_CREATE_GEOMETRY_OBJECT = {
      .error_name            = "OB_ERR_CANT_CREATE_GEOMETRY_OBJECT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANT_CREATE_GEOMETRY_OBJECT,
      .sqlstate              = "22003",
      .str_error             = "Cannot get geometry object from data you send to the GEOMETRY field.",
      .str_user_error        = "Cannot get geometry object from data you send to the GEOMETRY field.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Cannot get geometry object from data you send to the GEOMETRY field.",
      .oracle_str_user_error = "ORA-00600: Cannot get geometry object from data you send to the GEOMETRY field."
};
static const _error _error_OB_ERR_SRID_WRONG_USAGE = {
      .error_name            = "OB_ERR_SRID_WRONG_USAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_USAGE,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect usage of srid, srid column attribute only support in geometry.",
      .str_user_error        = "Incorrect usage of srid.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Incorrect usage of srid.",
      .oracle_str_user_error = "ORA-00600: Incorrect usage of srid."
};
static const _error _error_OB_ERR_INDEX_ORDER_WRONG_USAGE = {
      .error_name            = "OB_ERR_INDEX_ORDER_WRONG_USAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_USAGE,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect usage of spatial/fulltext/hash index and explicit index order.",
      .str_user_error        = "Incorrect usage of spatial/fulltext/hash index and explicit index order.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Incorrect usage of spatial/fulltext/hash index and explicit index order.",
      .oracle_str_user_error = "ORA-00600: Incorrect usage of spatial/fulltext/hash index and explicit index order."
};
static const _error _error_OB_ERR_SPATIAL_MUST_HAVE_GEOM_COL = {
      .error_name            = "OB_ERR_SPATIAL_MUST_HAVE_GEOM_COL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SPATIAL_MUST_HAVE_GEOM_COL,
      .sqlstate              = "42000",
      .str_error             = "A SPATIAL index may only contain a geometrical type column.",
      .str_user_error        = "A SPATIAL index may only contain a geometrical type column.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: A SPATIAL index may only contain a geometrical type column.",
      .oracle_str_user_error = "ORA-00600: A SPATIAL index may only contain a geometrical type column."
};
static const _error _error_OB_ERR_SPATIAL_CANT_HAVE_NULL = {
      .error_name            = "OB_ERR_SPATIAL_CANT_HAVE_NULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SPATIAL_CANT_HAVE_NULL,
      .sqlstate              = "42000",
      .str_error             = "All parts of a SPATIAL index must be NOT NULL.",
      .str_user_error        = "All parts of a SPATIAL index must be NOT NULL.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: All parts of a SPATIAL index must be NOT NULL.",
      .oracle_str_user_error = "ORA-00600: All parts of a SPATIAL index must be NOT NULL."
};
static const _error _error_OB_ERR_INDEX_TYPE_NOT_SUPPORTED_FOR_SPATIAL_INDEX = {
      .error_name            = "OB_ERR_INDEX_TYPE_NOT_SUPPORTED_FOR_SPATIAL_INDEX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INDEX_TYPE_NOT_SUPPORTED_FOR_SPATIAL_INDEX,
      .sqlstate              = "HY000",
      .str_error             = "The index type is not supported for spatial indexes.",
      .str_user_error        = "The index type %s is not supported for spatial indexes.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The index type is not supported for spatial indexes.",
      .oracle_str_user_error = "ORA-00600: The index type %s is not supported for spatial indexes."
};
static const _error _error_OB_ERR_UNIT_NOT_FOUND = {
      .error_name            = "OB_ERR_UNIT_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNIT_NOT_FOUND,
      .sqlstate              = "SU001",
      .str_error             = "There\'s no unit of measure.",
      .str_user_error        = "There\'s no unit of measure named \'%s\'.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: There\'s no unit of measure.",
      .oracle_str_user_error = "ORA-00600: There\'s no unit of measure named \'%s\'."
};
static const _error _error_OB_ERR_INVALID_OPTION_KEY_VALUE_PAIR = {
      .error_name            = "OB_ERR_INVALID_OPTION_KEY_VALUE_PAIR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_OPTION_KEY_VALUE_PAIR,
      .sqlstate              = "22023",
      .str_error             = "The string is not a valid key value pair in function.",
      .str_user_error        = "The string \'%.192s\' is not a valid key %c value pair in function %.192s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: The string is not a valid key value pair in function.",
      .oracle_str_user_error = "ORA-00600: The string \'%.192s\' is not a valid key %c value pair in function %.192s."
};
static const _error _error_OB_ERR_NONPOSITIVE_RADIUS = {
      .error_name            = "OB_ERR_NONPOSITIVE_RADIUS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NONPOSITIVE_RADIUS,
      .sqlstate              = "22023",
      .str_error             = "Invalid radius provided to function: Radius must be greater than zero.",
      .str_user_error        = "Invalid radius provided to function %s: Radius(%lf) must be greater than zero.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Invalid radius provided to function: Radius must be greater than zero.",
      .oracle_str_user_error = "ORA-00600: Invalid radius provided to function %s: Radius(%lf) must be greater than zero."
};
static const _error _error_OB_ERR_SRS_EMPTY = {
      .error_name            = "OB_ERR_SRS_EMPTY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SRS_NOT_FOUND,
      .sqlstate              = "SR001",
      .str_error             = "Spatial reference system is empty.",
      .str_user_error        = "Spatial reference system is empty",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Spatial reference system is empty",
      .oracle_str_user_error = "ORA-00600: Spatial reference system is empty"
};
static const _error _error_OB_ERR_INVALID_OPTION_KEY = {
      .error_name            = "OB_ERR_INVALID_OPTION_KEY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_OPTION_KEY,
      .sqlstate              = "22023",
      .str_error             = "Invalid option key in function.",
      .str_user_error        = "Invalid option key \'%.192s\' in function %.192s.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Invalid option key in function.",
      .oracle_str_user_error = "ORA-00600: Invalid option key \'%.192s\' in function %.192s."
};
static const _error _error_OB_ERR_INVALID_OPTION_VALUE = {
      .error_name            = "OB_ERR_INVALID_OPTION_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_INVALID_OPTION_VALUE,
      .sqlstate              = "22023",
      .str_error             = "Invalid value for option in function.",
      .str_user_error        = "Invalid value \'%.192s\' for option \'%.192s\' in function \'%.192s\'.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Invalid value for option in function.",
      .oracle_str_user_error = "ORA-00600: Invalid value \'%.192s\' for option \'%.192s\' in function \'%.192s\'."
};
static const _error _error_OB_ERR_INVALID_GEOMETRY_TYPE = {
      .error_name            = "OB_ERR_INVALID_GEOMETRY_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNEXPECTED_GEOMETRY_TYPE,
      .sqlstate              = "22S01",
      .str_error             = "Unknown WKB type.",
      .str_user_error        = "Unknown WKB type(%d)! Full WKB type number was (%d).",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: Unknown WKB type.",
      .oracle_str_user_error = "ORA-00600: Unknown WKB type(%d)! Full WKB type number was (%d)."
};
static const _error _error_OB_ERR_FTS_MUST_HAVE_TEXT_COL = {
      .error_name            = "OB_ERR_FTS_MUST_HAVE_TEXT_COL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_BAD_FT_COLUMN,
      .sqlstate              = "42000",
      .str_error             = "A FTS index may only contain a text type column.",
      .str_user_error        = "A FTS index may only contain a text type column.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: A FTS index may only contain a text type column.",
      .oracle_str_user_error = "ORA-00600: A FTS index may only contain a text type column."
};
static const _error _error_OB_ERR_DIMENSION_NUMBER_IS_OUT_OF_RANGE = {
      .error_name            = "OB_ERR_DIMENSION_NUMBER_IS_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "dimension number is out of range",
      .str_user_error        = "dimension number is out of range",
      .oracle_errno          = 13000,
      .oracle_str_error      = "ORA-13000: dimension number is out of range",
      .oracle_str_user_error = "ORA-13000: dimension number is out of range"
};
static const _error _error_OB_ERR_INVALID_GTYPE_IN_SDO_GEROMETRY = {
      .error_name            = "OB_ERR_INVALID_GTYPE_IN_SDO_GEROMETRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid Gtype in the SDO_GEOMETRY object",
      .str_user_error        = "Invalid Gtype in the SDO_GEOMETRY object",
      .oracle_errno          = 13028,
      .oracle_str_error      = "ORA-13028: Invalid Gtype in the SDO_GEOMETRY object",
      .oracle_str_user_error = "ORA-13028: Invalid Gtype in the SDO_GEOMETRY object"
};
static const _error _error_OB_ERR_INVALID_SRID_IN_SDO_GEOMETRY = {
      .error_name            = "OB_ERR_INVALID_SRID_IN_SDO_GEOMETRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid SRID in the SDO_GEOMETRY object",
      .str_user_error        = "Invalid SRID in the SDO_GEOMETRY object",
      .oracle_errno          = 13029,
      .oracle_str_error      = "ORA-13029: Invalid SRID in the SDO_GEOMETRY object",
      .oracle_str_user_error = "ORA-13029: Invalid SRID in the SDO_GEOMETRY object"
};
static const _error _error_OB_ERR_INVALID_GTYPE_FOR_POINT_OBJECT = {
      .error_name            = "OB_ERR_INVALID_GTYPE_FOR_POINT_OBJECT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid Gtype in the SDO_GEOMETRY object for point object",
      .str_user_error        = "Invalid Gtype in the SDO_GEOMETRY object for point object",
      .oracle_errno          = 13031,
      .oracle_str_error      = "ORA-13031: Invalid Gtype in the SDO_GEOMETRY object for point object",
      .oracle_str_user_error = "ORA-13031: Invalid Gtype in the SDO_GEOMETRY object for point object"
};
static const _error _error_OB_ERR_INVALID_NULL_SDO_GEOMETRY = {
      .error_name            = "OB_ERR_INVALID_NULL_SDO_GEOMETRY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid NULL  SDO_GEOMETRY object",
      .str_user_error        = "Invalid NULL  SDO_GEOMETRY object",
      .oracle_errno          = 13032,
      .oracle_str_error      = "ORA-13032: Invalid NULL  SDO_GEOMETRY object",
      .oracle_str_user_error = "ORA-13032: Invalid NULL  SDO_GEOMETRY object"
};
static const _error _error_OB_ERR_INVALID_DATA_IN_SDO_ELEM_INFO_ARRAY = {
      .error_name            = "OB_ERR_INVALID_DATA_IN_SDO_ELEM_INFO_ARRAY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid data in the SDO_ELEM_INFO_ARRAY in SDO_GEOMETRY object",
      .str_user_error        = "Invalid data in the SDO_ELEM_INFO_ARRAY in SDO_GEOMETRY object",
      .oracle_errno          = 13033,
      .oracle_str_error      = "ORA-13033: Invalid data in the SDO_ELEM_INFO_ARRAY in SDO_GEOMETRY object",
      .oracle_str_user_error = "ORA-13033: Invalid data in the SDO_ELEM_INFO_ARRAY in SDO_GEOMETRY object"
};
static const _error _error_OB_ERR_INVALID_DATA_IN_SDO_ORDINATE_ARRAY = {
      .error_name            = "OB_ERR_INVALID_DATA_IN_SDO_ORDINATE_ARRAY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid data in the SDO_ORDINATE_ARRAY in SDO_GEOMETRY object",
      .str_user_error        = "Invalid data in the SDO_ORDINATE_ARRAY in SDO_GEOMETRY object",
      .oracle_errno          = 13034,
      .oracle_str_error      = "ORA-13034: Invalid data in the SDO_ORDINATE_ARRAY in SDO_GEOMETRY object",
      .oracle_str_user_error = "ORA-13034: Invalid data in the SDO_ORDINATE_ARRAY in SDO_GEOMETRY object"
};
static const _error _error_OB_ERR_VALUE_NOT_ALLOWED = {
      .error_name            = "OB_ERR_VALUE_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "value not allowed",
      .str_user_error        = "value not allowed",
      .oracle_errno          = 24323,
      .oracle_str_error      = "ORA-24323: value not allowed",
      .oracle_str_user_error = "ORA-24323: value not allowed"
};
static const _error _error_OB_ERR_INVALID_XML_DATATYPE = {
      .error_name            = "OB_ERR_INVALID_XML_DATATYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "22000",
      .str_error             = "Invalid data type for the operation",
      .str_user_error        = "inconsistent datatypes: expected %s got %s",
      .oracle_errno          = 932,
      .oracle_str_error      = "ORA-00932: inconsistent datatypes",
      .oracle_str_user_error = "ORA-00932: inconsistent datatypes: expected %s got %s"
};
static const _error _error_OB_ERR_XML_MISSING_COMMA = {
      .error_name            = "OB_ERR_XML_MISSING_COMMA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "missing comma",
      .str_user_error        = "missing comma",
      .oracle_errno          = 917,
      .oracle_str_error      = "ORA-00917: missing comma",
      .oracle_str_user_error = "ORA-00917: missing comma"
};
static const _error _error_OB_ERR_INVALID_XPATH_EXPRESSION = {
      .error_name            = "OB_ERR_INVALID_XPATH_EXPRESSION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNKNOWN_ERROR,
      .sqlstate              = "42000",
      .str_error             = "invalid xpath expression",
      .str_user_error        = "invalid xpath expression",
      .oracle_errno          = 31013,
      .oracle_str_error      = "ORA-31013: invalid xpath expression",
      .oracle_str_user_error = "ORA-31013: invalid xpath expression"
};
static const _error _error_OB_ERR_EXTRACTVALUE_MULTI_NODES = {
      .error_name            = "OB_ERR_EXTRACTVALUE_MULTI_NODES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "EXTRACTVALUE cannot extract values of multiple nodes",
      .str_user_error        = "EXTRACTVALUE cannot extract values of multiple nodes",
      .oracle_errno          = 19025,
      .oracle_str_error      = "ORA-19025: EXTRACTVALUE cannot extract values of multiple nodes",
      .oracle_str_user_error = "ORA-19025: EXTRACTVALUE cannot extract values of multiple nodes"
};
static const _error _error_OB_ERR_XML_FRAMENT_CONVERT = {
      .error_name            = "OB_ERR_XML_FRAMENT_CONVERT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Cannot convert XML fragment to the required datatype",
      .str_user_error        = "Cannot convert XML fragment to the required datatype",
      .oracle_errno          = 19012,
      .oracle_str_error      = "ORA-19012: Cannot convert XML fragment to the required datatype",
      .oracle_str_user_error = "ORA-19012: Cannot convert XML fragment to the required datatype"
};
static const _error _error_OB_INVALID_PRINT_OPTION = {
      .error_name            = "OB_INVALID_PRINT_OPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "The specified printing option is invalid",
      .str_user_error        = "The specified printing option is invalid",
      .oracle_errno          = 31188,
      .oracle_str_error      = "ORA-31188: The specified printing option is invalid",
      .oracle_str_user_error = "ORA-31188: The specified printing option is invalid"
};
static const _error _error_OB_XML_CHAR_LEN_TOO_SMALL = {
      .error_name            = "OB_XML_CHAR_LEN_TOO_SMALL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "character length specified for XMLSerialize is too small.",
      .str_user_error        = "character length specified for XMLSerialize is too small.",
      .oracle_errno          = 19044,
      .oracle_str_error      = "ORA-19044: character length specified for XMLSerialize is too small.",
      .oracle_str_user_error = "ORA-19044: character length specified for XMLSerialize is too small."
};
static const _error _error_OB_XPATH_EXPRESSION_UNSUPPORTED = {
      .error_name            = "OB_XPATH_EXPRESSION_UNSUPPORTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNKNOWN_ERROR,
      .sqlstate              = "42000",
      .str_error             = "Given XPATH expression not supported",
      .str_user_error        = "Given XPATH expression not supported",
      .oracle_errno          = 31012,
      .oracle_str_error      = "ORA-31012: Given XPATH expression not supported",
      .oracle_str_user_error = "ORA-31012: Given XPATH expression not supported"
};
static const _error _error_OB_EXTRACTVALUE_NOT_LEAF_NODE = {
      .error_name            = "OB_EXTRACTVALUE_NOT_LEAF_NODE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "EXTRACTVALUE can only retrieve value of leaf node",
      .str_user_error        = "EXTRACTVALUE can only retrieve value of leaf node",
      .oracle_errno          = 19026,
      .oracle_str_error      = "ORA-19026: EXTRACTVALUE can only retrieve value of leaf node",
      .oracle_str_user_error = "ORA-19026: EXTRACTVALUE can only retrieve value of leaf node"
};
static const _error _error_OB_XML_INSERT_FRAGMENT = {
      .error_name            = "OB_XML_INSERT_FRAGMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Cannot insert XML fragments",
      .str_user_error        = "Cannot insert XML fragments",
      .oracle_errno          = 19010,
      .oracle_str_error      = "ORA-19010: Cannot insert XML fragments",
      .oracle_str_user_error = "ORA-19010: Cannot insert XML fragments"
};
static const _error _error_OB_ERR_NO_ORDER_MAP_SQL = {
      .error_name            = "OB_ERR_NO_ORDER_MAP_SQL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "cannot ORDER objects without MAP or ORDER method",
      .str_user_error        = "cannot ORDER objects without MAP or ORDER method",
      .oracle_errno          = 22950,
      .oracle_str_error      = "ORA-22950: cannot ORDER objects without MAP or ORDER method",
      .oracle_str_user_error = "ORA-22950: cannot ORDER objects without MAP or ORDER method"
};
static const _error _error_OB_ERR_XMLELEMENT_ALIASED = {
      .error_name            = "OB_ERR_XMLELEMENT_ALIASED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "parameter %d of function XMLELEMENT must be aliased",
      .str_user_error        = "parameter %d of function XMLELEMENT must be aliased",
      .oracle_errno          = 19208,
      .oracle_str_error      = "ORA-19208: parameter %d of function XMLELEMENT must be aliased",
      .oracle_str_user_error = "ORA-19208: parameter %d of function XMLELEMENT must be aliased"
};
static const _error _error_OB_INVALID_ALTERATIONG_DATATYPE = {
      .error_name            = "OB_INVALID_ALTERATIONG_DATATYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "invalid alteration of datatype",
      .str_user_error        = "invalid alteration of datatype",
      .oracle_errno          = 22858,
      .oracle_str_error      = "ORA-22858: invalid alteration of datatype",
      .oracle_str_user_error = "ORA-22858: invalid alteration of datatype"
};
static const _error _error_OB_INVALID_MODIFICATION_OF_COLUMNS = {
      .error_name            = "OB_INVALID_MODIFICATION_OF_COLUMNS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "invalid modification of columns",
      .str_user_error        = "invalid modification of columns",
      .oracle_errno          = 22859,
      .oracle_str_error      = "ORA-22859: invalid modification of columns",
      .oracle_str_user_error = "ORA-22859: invalid modification of columns"
};
static const _error _error_OB_ERR_NULL_FOR_XML_CONSTRUCTOR = {
      .error_name            = "OB_ERR_NULL_FOR_XML_CONSTRUCTOR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Expected XML tag , got no content",
      .str_user_error        = "Expected XML tag , got no content",
      .oracle_errno          = 19032,
      .oracle_str_error      = "ORA-19032: Expected XML tag , got no content",
      .oracle_str_user_error = "ORA-19032: Expected XML tag , got no content"
};
static const _error _error_OB_ERR_XML_INDEX = {
      .error_name            = "OB_ERR_XML_INDEX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "cannot create index on expression with datatype ADT '%.*s'",
      .str_user_error        = "cannot create index on expression with datatype ADT '%.*s'",
      .oracle_errno          = 2327 ,
      .oracle_str_error      = "ORA-02327: cannot create index on expression with datatype ADT '%.*s'",
      .oracle_str_user_error = "ORA-02327: cannot create index on expression with datatype ADT '%.*s'"
};
static const _error _error_OB_ERR_UPDATE_XML_WITH_INVALID_NODE = {
      .error_name            = "OB_ERR_UPDATE_XML_WITH_INVALID_NODE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "XML nodes must be updated with valid nodes and of the same type'",
      .str_user_error        = "XML nodes must be updated with valid nodes and of the same type'",
      .oracle_errno          = 31067 ,
      .oracle_str_error      = "ORA-31067: XML nodes must be updated with valid nodes and of the same type",
      .oracle_str_user_error = "ORA-31067: XML nodes must be updated with valid nodes and of the same type"
};
static const _error _error_OB_LOB_VALUE_NOT_EXIST = {
      .error_name            = "OB_LOB_VALUE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "LOB value does not exist",
      .str_user_error        = "LOB value does not exist",
      .oracle_errno          = 22922 ,
      .oracle_str_error      = "ORA-22922: LOB value does not exist",
      .oracle_str_user_error = "ORA-22922: LOB value does not exist"
};
static const _error _error_OB_ERR_JSON_FUN_UNSUPPORTED_TYPE = {
      .error_name            = "OB_ERR_JSON_FUN_UNSUPPORTED_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Input to JSON generation function has unsupported data type",
      .str_user_error        = "Input to JSON generation function has unsupported data type",
      .oracle_errno          = 40654,
      .oracle_str_error      = "ORA-40654: Input to JSON generation function has unsupported data type",
      .oracle_str_user_error = "ORA-40654: Input to JSON generation function has unsupported data type"
};
static const _error _error_OB_ERR_XQUERY_MULTI_VALUE = {
      .error_name            = "OB_ERR_XQUERY_MULTI_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "XPTY0004 - XQuery dynamic type mismatch: expected singleton sequence - got multi-item sequence",
      .str_user_error        = "XPTY0004 - XQuery dynamic type mismatch: expected singleton sequence - got multi-item sequence",
      .oracle_errno          = 19279,
      .oracle_str_error      = "ORA-19279: XPTY0004 - XQuery dynamic type mismatch: expected singleton sequence - got multi-item sequence",
      .oracle_str_user_error = "ORA-19279: XPTY0004 - XQuery dynamic type mismatch: expected singleton sequence - got multi-item sequence"
};
static const _error _error_OB_ERR_PARSE_XQUERY_EXPR = {
      .error_name            = "OB_ERR_PARSE_XQUERY_EXPR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "XPST0003 - error during parsing the XQuery expression",
      .str_user_error        = "XPST0003 - error during parsing the XQuery expression : %.*s",
      .oracle_errno          = 19114,
      .oracle_str_error      = "ORA-19114: XPST0003 - error during parsing the XQuery expression",
      .oracle_str_user_error = "ORA-19114: XPST0003 - error during parsing the XQuery expression : %.*s"
};
static const _error _error_OB_ERR_LACK_XQUERY_LITERAL = {
      .error_name            = "OB_ERR_LACK_XQUERY_LITERAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "XQuery string literal expected",
      .str_user_error        = "XQuery string literal expected",
      .oracle_errno          = 19102,
      .oracle_str_error      = "ORA-19102: XQuery string literal expected",
      .oracle_str_user_error = "ORA-19102: XQuery string literal expected"
};
static const _error _error_OB_ERR_TOO_MANY_PREFIX_DECLARE = {
      .error_name            = "OB_ERR_TOO_MANY_PREFIX_DECLARE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "XPST0033 - too many declarations for namespace prefix",
      .str_user_error        = "XPST0033 - too many declarations for namespace prefix %.*s",
      .oracle_errno          = 19253,
      .oracle_str_error      = "ORA-19253: XPST0033 - too many declarations for namespace prefix",
      .oracle_str_user_error = "ORA-19253: XPST0033 - too many declarations for namespace prefix %.*s"
};
static const _error _error_OB_ERR_XQUERY_TYPE_MISMATCH = {
      .error_name            = "OB_ERR_XQUERY_TYPE_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "XPTY0004 - XQuery static type mismatch: expected - node()* got -",
      .str_user_error        = "XPTY0004 - XQuery static type mismatch: expected - node()* got -",
      .oracle_errno          = 19224,
      .oracle_str_error      = "ORA-19224: XPTY0004 - XQuery static type mismatch: expected - node()* got -",
      .oracle_str_user_error = "ORA-19224: XPTY0004 - XQuery static type mismatch: expected - node()* got -"
};
static const _error _error_OB_ERR_XPATH_INVALID_NODE = {
      .error_name            = "OB_ERR_XPATH_INVALID_NODE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "XPST0005 - XPath step specifies an invalid element/attribute name",
      .str_user_error        = "XPST0005 - XPath step specifies an invalid element/attribute name: %.*s",
      .oracle_errno          = 19276,
      .oracle_str_error      = "ORA-19276: XPST0005 - XPath step specifies an invalid element/attribute name",
      .oracle_str_user_error = "ORA-19276: XPST0005 - XPath step specifies an invalid element/attribute name: %.*s"
};
static const _error _error_OB_ERR_XPATH_NO_NODE = {
      .error_name            = "OB_ERR_XPATH_NO_NODE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "XPST0005 - XPath step specifies an item type matching no node",
      .str_user_error        = "XPST0005 - XPath step specifies an item type matching no node: %.*s",
      .oracle_errno          = 19277,
      .oracle_str_error      = "ORA-19277: XPST0005 - XPath step specifies an item type matching no node",
      .oracle_str_user_error = "ORA-19277: XPST0005 - XPath step specifies an item type matching no node: %.*s"
};
static const _error _error_OB_ERR_XQUERY_UNSUPPORTED = {
      .error_name            = "OB_ERR_XQUERY_UNSUPPORTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "unsupported XQuery expression",
      .str_user_error        = "unsupported XQuery expression",
      .oracle_errno          = 19110,
      .oracle_str_error      = "ORA-19110: unsupported XQuery expression",
      .oracle_str_user_error = "ORA-19110: unsupported XQuery expression"
};
static const _error _error_OB_ERR_INVALID_XML_CHILD_NAME = {
      .error_name            = "OB_ERR_INVALID_XML_CHILD_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "The document being inserted does not conform to specified child name",
      .str_user_error        = "The document being inserted does not conform to specified child name",
      .oracle_errno          = 31056,
      .oracle_str_error      = "ORA-31056: The document being inserted does not conform to specified child name",
      .oracle_str_user_error = "ORA-31056: The document being inserted does not conform to specified child name"
};
static const _error _error_OB_ERR_XML_NOT_SUPPORT_OPERATION = {
      .error_name            = "OB_ERR_XML_NOT_SUPPORT_OPERATION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "XML node '' (type=%s) does not support this operation",
      .str_user_error        = "XML node '' (type=%s) does not support this operation",
      .oracle_errno          = 31195,
      .oracle_str_error      = "ORA-31195: XML node '' (type=%s) does not support this operation",
      .oracle_str_user_error = "ORA-31195: XML node '' (type=%s) does not support this operation"
};
static const _error _error_OB_ERR_DUP_DEF_NAMESPACE = {
      .error_name            = "OB_ERR_DUP_DEF_NAMESPACE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "XQST0066 - duplicate default namespace definition - string",
      .str_user_error        = "XQST0066 - duplicate default namespace definition - %s.",
      .oracle_errno          = 19118,
      .oracle_str_error      = "ORA-19118: XQST0066 - duplicate default namespace definition - string.",
      .oracle_str_user_error = "ORA-19118: XQST0066 - duplicate default namespace definition - %s."
};
static const _error _error_OB_ERR_COMPARE_VARRAY_LOB_ATTR = {
      .error_name            = "OB_ERR_COMPARE_VARRAY_LOB_ATTR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "cannot compare VARRAY or LOB attributes of an object type",
      .str_user_error        = "cannot compare VARRAY or LOB attributes of an object type",
      .oracle_errno          = 22901,
      .oracle_str_error      = "ORA-22901: cannot compare VARRAY or LOB attributes of an object type",
      .oracle_str_user_error = "ORA-22901: cannot compare VARRAY or LOB attributes of an object type"
};
static const _error _error_OB_ERR_XML_PARENT_ALREADY_CONTAINS_CHILD = {
      .error_name            = "OB_ERR_XML_PARENT_ALREADY_CONTAINS_CHILD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "42000",
      .str_error             = "Parent %.*s already contains child entry %.*s",
      .str_user_error        = "Parent %.*s already contains child entry %.*s",
      .oracle_errno          = 31003,
      .oracle_str_error      = "ORA-31003: Parent %.*s already contains child entry %.*s",
      .oracle_str_user_error = "ORA-31003: Parent %.*s already contains child entry %.*s"
};
static const _error _error_OB_SERVER_IS_INIT = {
      .error_name            = "OB_SERVER_IS_INIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "08004",
      .str_error             = "Server is initializing",
      .str_user_error        = "Server is initializing",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -8001, Server is initializing",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -8001, Server is initializing"
};
static const _error _error_OB_SERVER_IS_STOPPING = {
      .error_name            = "OB_SERVER_IS_STOPPING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "08004",
      .str_error             = "Server is stopping",
      .str_user_error        = "Server is stopping",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -8002, Server is stopping",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -8002, Server is stopping"
};
static const _error _error_OB_PACKET_CHECKSUM_ERROR = {
      .error_name            = "OB_PACKET_CHECKSUM_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "08004",
      .str_error             = "Packet checksum error",
      .str_user_error        = "Packet checksum error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -8003, Packet checksum error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -8003, Packet checksum error"
};
static const _error _error_OB_PACKET_CLUSTER_ID_NOT_MATCH = {
      .error_name            = "OB_PACKET_CLUSTER_ID_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "08004",
      .str_error             = "Packet cluster_id not match",
      .str_user_error        = "Packet cluster_id not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -8004, Packet cluster_id not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -8004, Packet cluster_id not match"
};
static const _error _error_OB_TENANT_ID_NOT_MATCH = {
      .error_name            = "OB_TENANT_ID_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "08005",
      .str_error             = "Tenant id not match",
      .str_user_error        = "Tenant id not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -8005, Tenant id not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -8005, Tenant id not match"
};
static const _error _error_OB_URI_ERROR = {
      .error_name            = "OB_URI_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "URI error",
      .str_user_error        = "URI error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9001, URI error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9001, URI error"
};
static const _error _error_OB_FINAL_MD5_ERROR = {
      .error_name            = "OB_FINAL_MD5_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "OSS file MD5 error",
      .str_user_error        = "OSS file MD5 error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9002, OSS file MD5 error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9002, OSS file MD5 error"
};
static const _error _error_OB_OSS_ERROR = {
      .error_name            = "OB_OSS_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "OSS error",
      .str_user_error        = "OSS error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9003, OSS error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9003, OSS error"
};
static const _error _error_OB_INIT_MD5_ERROR = {
      .error_name            = "OB_INIT_MD5_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Init MD5 fail",
      .str_user_error        = "Init MD5 fail",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9004, Init MD5 fail",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9004, Init MD5 fail"
};
static const _error _error_OB_OUT_OF_ELEMENT = {
      .error_name            = "OB_OUT_OF_ELEMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Out of element",
      .str_user_error        = "Out of element",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9005, Out of element",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9005, Out of element"
};
static const _error _error_OB_UPDATE_MD5_ERROR = {
      .error_name            = "OB_UPDATE_MD5_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Update MD5 fail",
      .str_user_error        = "Update MD5 fail",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9006, Update MD5 fail",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9006, Update MD5 fail"
};
static const _error _error_OB_FILE_LENGTH_INVALID = {
      .error_name            = "OB_FILE_LENGTH_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid OSS file length",
      .str_user_error        = "Invalid OSS file length",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9007, Invalid OSS file length",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9007, Invalid OSS file length"
};
static const _error _error_OB_NOT_READ_ALL_DATA = {
      .error_name            = "OB_NOT_READ_ALL_DATA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Read all data fail",
      .str_user_error        = "Read all data fail",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9008, Read all data fail",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9008, Read all data fail"
};
static const _error _error_OB_BUILD_MD5_ERROR = {
      .error_name            = "OB_BUILD_MD5_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Build MD5 fail",
      .str_user_error        = "Build MD5 fail",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9009, Build MD5 fail",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9009, Build MD5 fail"
};
static const _error _error_OB_MD5_NOT_MATCH = {
      .error_name            = "OB_MD5_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "OSS file MD5 not match",
      .str_user_error        = "OSS file MD5 not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9010, OSS file MD5 not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9010, OSS file MD5 not match"
};
static const _error _error_OB_BACKUP_FILE_NOT_EXIST = {
      .error_name            = "OB_BACKUP_FILE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot find backup file",
      .str_user_error        = "cannot find backup file",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9011, cannot find backup file",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9011, cannot find backup file"
};
static const _error _error_OB_OSS_DATA_VERSION_NOT_MATCHED = {
      .error_name            = "OB_OSS_DATA_VERSION_NOT_MATCHED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Can not get data version from timestamp",
      .str_user_error        = "Can not get data version from timestamp",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9012, Can not get data version from timestamp",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9012, Can not get data version from timestamp"
};
static const _error _error_OB_OSS_WRITE_ERROR = {
      .error_name            = "OB_OSS_WRITE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Write OSS file error",
      .str_user_error        = "Write OSS file error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9013, Write OSS file error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9013, Write OSS file error"
};
static const _error _error_OB_RESTORE_IN_PROGRESS = {
      .error_name            = "OB_RESTORE_IN_PROGRESS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Another restore is in progress",
      .str_user_error        = "Another restore is in progress",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9014, Another restore is in progress",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9014, Another restore is in progress"
};
static const _error _error_OB_AGENT_INITING_BACKUP_COUNT_ERROR = {
      .error_name            = "OB_AGENT_INITING_BACKUP_COUNT_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "agent initing backup count error",
      .str_user_error        = "agent initing backup count error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9015, agent initing backup count error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9015, agent initing backup count error"
};
static const _error _error_OB_CLUSTER_NAME_NOT_EQUAL = {
      .error_name            = "OB_CLUSTER_NAME_NOT_EQUAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ob cluster name not equal",
      .str_user_error        = "ob cluster name not equal",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9016, ob cluster name not equal",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9016, ob cluster name not equal"
};
static const _error _error_OB_RS_LIST_INVAILD = {
      .error_name            = "OB_RS_LIST_INVAILD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "rs list invalid",
      .str_user_error        = "rs list invalid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9017, rs list invalid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9017, rs list invalid"
};
static const _error _error_OB_AGENT_HAS_FAILED_TASK = {
      .error_name            = "OB_AGENT_HAS_FAILED_TASK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "agent has failed task",
      .str_user_error        = "agent has failed task",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9018, agent has failed task",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9018, agent has failed task"
};
static const _error _error_OB_RESTORE_PARTITION_IS_COMPLETE = {
      .error_name            = "OB_RESTORE_PARTITION_IS_COMPLETE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "restore partition is complete",
      .str_user_error        = "restore partition is complete",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9019, restore partition is complete",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9019, restore partition is complete"
};
static const _error _error_OB_RESTORE_PARTITION_TWICE = {
      .error_name            = "OB_RESTORE_PARTITION_TWICE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "restore partition twice",
      .str_user_error        = "restore partition twice",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9020, restore partition twice",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9020, restore partition twice"
};
static const _error _error_OB_STOP_DROP_SCHEMA = {
      .error_name            = "OB_STOP_DROP_SCHEMA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "physical backup switch is on",
      .str_user_error        = "physical backup switch is on",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9022, physical backup switch is on",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9022, physical backup switch is on"
};
static const _error _error_OB_CANNOT_START_LOG_ARCHIVE_BACKUP = {
      .error_name            = "OB_CANNOT_START_LOG_ARCHIVE_BACKUP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot start log archive backup",
      .str_user_error        = "cannot start log archive backup",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9023, cannot start log archive backup",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9023, cannot start log archive backup"
};
static const _error _error_OB_ALREADY_NO_LOG_ARCHIVE_BACKUP = {
      .error_name            = "OB_ALREADY_NO_LOG_ARCHIVE_BACKUP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log archive backup is already disabled",
      .str_user_error        = "log archive backup is already disabled",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9024, log archive backup is already disabled",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9024, log archive backup is already disabled"
};
static const _error _error_OB_LOG_ARCHIVE_BACKUP_INFO_NOT_EXIST = {
      .error_name            = "OB_LOG_ARCHIVE_BACKUP_INFO_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log archive backup info not exists",
      .str_user_error        = "log archive backup info not exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9025, log archive backup info not exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9025, log archive backup info not exists"
};
static const _error _error_OB_INVALID_BACKUP_DEST = {
      .error_name            = "OB_INVALID_BACKUP_DEST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup destination is not valid",
      .str_user_error        = "%s is not a valid uri",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9026, backup destination is not valid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9026, %s is not a valid uri"
};
static const _error _error_OB_LOG_ARCHIVE_INTERRUPTED = {
      .error_name            = "OB_LOG_ARCHIVE_INTERRUPTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ob log archive interrupted",
      .str_user_error        = "ob log archive interrupted",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9027, ob log archive interrupted",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9027, ob log archive interrupted"
};
static const _error _error_OB_LOG_ARCHIVE_STAT_NOT_MATCH = {
      .error_name            = "OB_LOG_ARCHIVE_STAT_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ob log archive stat not match",
      .str_user_error        = "ob log archive stat not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9028, ob log archive stat not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9028, ob log archive stat not match"
};
static const _error _error_OB_LOG_ARCHIVE_NOT_RUNNING = {
      .error_name            = "OB_LOG_ARCHIVE_NOT_RUNNING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log archive is not running",
      .str_user_error        = "log archive is not running",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9029, log archive is not running",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9029, log archive is not running"
};
static const _error _error_OB_LOG_ARCHIVE_INVALID_ROUND = {
      .error_name            = "OB_LOG_ARCHIVE_INVALID_ROUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log archive invalid round",
      .str_user_error        = "log archive invalid round",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9030, log archive invalid round",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9030, log archive invalid round"
};
static const _error _error_OB_REPLICA_CANNOT_BACKUP = {
      .error_name            = "OB_REPLICA_CANNOT_BACKUP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Cannot backup ob replica",
      .str_user_error        = "Cannot backup ob replica",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9031, Cannot backup ob replica",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9031, Cannot backup ob replica"
};
static const _error _error_OB_BACKUP_INFO_NOT_EXIST = {
      .error_name            = "OB_BACKUP_INFO_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup info not exists",
      .str_user_error        = "backup info not exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9032, backup info not exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9032, backup info not exists"
};
static const _error _error_OB_BACKUP_INFO_NOT_MATCH = {
      .error_name            = "OB_BACKUP_INFO_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Backup meta info stored in system dictionary does not match with current system status",
      .str_user_error        = "Backup meta info stored in system dictionary does not match with current system status",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9033, Backup meta info stored in system dictionary does not match with current system status",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9033, Backup meta info stored in system dictionary does not match with current system status"
};
static const _error _error_OB_LOG_ARCHIVE_ALREADY_STOPPED = {
      .error_name            = "OB_LOG_ARCHIVE_ALREADY_STOPPED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log archive already stopped",
      .str_user_error        = "log archive already stopped",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9034, log archive already stopped",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9034, log archive already stopped"
};
static const _error _error_OB_RESTORE_INDEX_FAILED = {
      .error_name            = "OB_RESTORE_INDEX_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "restore index failed",
      .str_user_error        = "restore index failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9035, restore index failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9035, restore index failed"
};
static const _error _error_OB_BACKUP_IN_PROGRESS = {
      .error_name            = "OB_BACKUP_IN_PROGRESS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Backup is in progress",
      .str_user_error        = "Backup is in progress",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9036, Backup is in progress",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9036, Backup is in progress"
};
static const _error _error_OB_INVALID_LOG_ARCHIVE_STATUS = {
      .error_name            = "OB_INVALID_LOG_ARCHIVE_STATUS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log archive status is not valid",
      .str_user_error        = "log archive status is not valid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9037, log archive status is not valid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9037, log archive status is not valid"
};
static const _error _error_OB_CANNOT_ADD_REPLICA_DURING_SET_MEMBER_LIST = {
      .error_name            = "OB_CANNOT_ADD_REPLICA_DURING_SET_MEMBER_LIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Cannot add replica during set member list in restore",
      .str_user_error        = "Cannot add replica during set member list in restore",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9038, Cannot add replica during set member list in restore",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9038, Cannot add replica during set member list in restore"
};
static const _error _error_OB_LOG_ARCHIVE_LEADER_CHANGED = {
      .error_name            = "OB_LOG_ARCHIVE_LEADER_CHANGED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "pg log archive leader changed",
      .str_user_error        = "pg log archive leader changed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9039, pg log archive leader changed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9039, pg log archive leader changed"
};
static const _error _error_OB_BACKUP_CAN_NOT_START = {
      .error_name            = "OB_BACKUP_CAN_NOT_START",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup can not start",
      .str_user_error        = "backup can not start, because %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9040, backup can not start",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9040, backup can not start, because %s"
};
static const _error _error_OB_CANCEL_BACKUP_NOT_ALLOWED = {
      .error_name            = "OB_CANCEL_BACKUP_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cancel backup do not allow",
      .str_user_error        = "cancel backup do not allow",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9041, cancel backup do not allow",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9041, cancel backup do not allow"
};
static const _error _error_OB_BACKUP_DATA_VERSION_GAP_OVER_LIMIT = {
      .error_name            = "OB_BACKUP_DATA_VERSION_GAP_OVER_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup data version gap over limit",
      .str_user_error        = "backup data version gap over limit",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9042, backup data version gap over limit",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9042, backup data version gap over limit"
};
static const _error _error_OB_PG_LOG_ARCHIVE_STATUS_NOT_INIT = {
      .error_name            = "OB_PG_LOG_ARCHIVE_STATUS_NOT_INIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "pg log archive status is still invalid",
      .str_user_error        = "pg log archive status is still invalid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9043, pg log archive status is still invalid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9043, pg log archive status is still invalid"
};
static const _error _error_OB_BACKUP_DELETE_DATA_IN_PROGRESS = {
      .error_name            = "OB_BACKUP_DELETE_DATA_IN_PROGRESS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "delete backup data is in progress",
      .str_user_error        = "delete backup data is in progress",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9044, delete backup data is in progress",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9044, delete backup data is in progress"
};
static const _error _error_OB_BACKUP_DELETE_BACKUP_SET_NOT_ALLOWED = {
      .error_name            = "OB_BACKUP_DELETE_BACKUP_SET_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "delete backup set do not allow",
      .str_user_error        = "delete backup set do not allow",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9045, delete backup set do not allow",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9045, delete backup set do not allow"
};
static const _error _error_OB_INVALID_BACKUP_SET_ID = {
      .error_name            = "OB_INVALID_BACKUP_SET_ID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup set id is not valid",
      .str_user_error        = "backup set id is not valid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9046, backup set id is not valid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9046, backup set id is not valid"
};
static const _error _error_OB_BACKUP_INVALID_PASSWORD = {
      .error_name            = "OB_BACKUP_INVALID_PASSWORD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid password for backup",
      .str_user_error        = "invalid password for backup",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9047, invalid password for backup",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9047, invalid password for backup"
};
static const _error _error_OB_ISOLATED_BACKUP_SET = {
      .error_name            = "OB_ISOLATED_BACKUP_SET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup set is isolated by two log archive round",
      .str_user_error        = "backup set is isolated by two log archive round",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9048, backup set is isolated by two log archive round",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9048, backup set is isolated by two log archive round"
};
static const _error _error_OB_CANNOT_CANCEL_STOPPED_BACKUP = {
      .error_name            = "OB_CANNOT_CANCEL_STOPPED_BACKUP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup status is stopped, can not cancel",
      .str_user_error        = "backup status is stopped, can not cancel",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9049, backup status is stopped, can not cancel",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9049, backup status is stopped, can not cancel"
};
static const _error _error_OB_BACKUP_BACKUP_CAN_NOT_START = {
      .error_name            = "OB_BACKUP_BACKUP_CAN_NOT_START",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no backup data to be backuped up",
      .str_user_error        = "no backup data to be backuped up",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9050, no backup data to be backuped up",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9050, no backup data to be backuped up"
};
static const _error _error_OB_BACKUP_MOUNT_FILE_NOT_VALID = {
      .error_name            = "OB_BACKUP_MOUNT_FILE_NOT_VALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup mount file is not valid",
      .str_user_error        = "backup mount file is not valid",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9051, backup mount file is not valid",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9051, backup mount file is not valid"
};
static const _error _error_OB_BACKUP_CLEAN_INFO_NOT_MATCH = {
      .error_name            = "OB_BACKUP_CLEAN_INFO_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup clean info not match",
      .str_user_error        = "backup clean info not match",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9052, backup clean info not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9052, backup clean info not match"
};
static const _error _error_OB_CANCEL_DELETE_BACKUP_NOT_ALLOWED = {
      .error_name            = "OB_CANCEL_DELETE_BACKUP_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cancel delete backup do not allow",
      .str_user_error        = "cancel delete backup do not allow",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9053, cancel delete backup do not allow",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9053, cancel delete backup do not allow"
};
static const _error _error_OB_BACKUP_CLEAN_INFO_NOT_EXIST = {
      .error_name            = "OB_BACKUP_CLEAN_INFO_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup clean info not exists",
      .str_user_error        = "backup clean info not exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9054, backup clean info not exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9054, backup clean info not exists"
};
static const _error _error_OB_CANNOT_SET_BACKUP_REGION = {
      .error_name            = "OB_CANNOT_SET_BACKUP_REGION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "can not set backup region",
      .str_user_error        = "can not set backup region, because %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9057, can not set backup region",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9057, can not set backup region, because %s"
};
static const _error _error_OB_CANNOT_SET_BACKUP_ZONE = {
      .error_name            = "OB_CANNOT_SET_BACKUP_ZONE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "can not set backup zone",
      .str_user_error        = "can not set backup zone, because %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9058, can not set backup zone",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9058, can not set backup zone, because %s"
};
static const _error _error_OB_BACKUP_BACKUP_REACH_MAX_BACKUP_TIMES = {
      .error_name            = "OB_BACKUP_BACKUP_REACH_MAX_BACKUP_TIMES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup backup has reached max backup times",
      .str_user_error        = "backup backup has reached max backup times",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9059, backup backup has reached max backup times",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9059, backup backup has reached max backup times"
};
static const _error _error_OB_COS_ERROR = {
      .error_name            = "OB_COS_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "COS error",
      .str_user_error        = "COS error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9060, COS error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9060, COS error"
};
static const _error _error_OB_IO_LIMIT = {
      .error_name            = "OB_IO_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "IO limit",
      .str_user_error        = "IO limit",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9061, IO limit",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9061, IO limit"
};
static const _error _error_OB_BACKUP_BACKUP_REACH_COPY_LIMIT = {
      .error_name            = "OB_BACKUP_BACKUP_REACH_COPY_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "reach backup backup copy limit",
      .str_user_error        = "reach backup backup copy limit",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9062, reach backup backup copy limit",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9062, reach backup backup copy limit"
};
static const _error _error_OB_BACKUP_IO_PROHIBITED = {
      .error_name            = "OB_BACKUP_IO_PROHIBITED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup io is prohibited",
      .str_user_error        = "backup io is prohibited",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9063, backup io is prohibited",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9063, backup io is prohibited"
};
static const _error _error_OB_ARCHIVE_LOG_NOT_CONTINUES_WITH_DATA = {
      .error_name            = "OB_ARCHIVE_LOG_NOT_CONTINUES_WITH_DATA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the archive log and backup data are not continuous",
      .str_user_error        = "the archive log and backup data are not continuous",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9064, the archive log and backup data are not continuous",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9064, the archive log and backup data are not continuous"
};
static const _error _error_OB_AGENT_HAS_SUSPENDED = {
      .error_name            = "OB_AGENT_HAS_SUSPENDED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "agent has suspended",
      .str_user_error        = "agent has suspended",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9065, agent has suspended",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9065, agent has suspended"
};
static const _error _error_OB_BACKUP_CONFLICT_VALUE = {
      .error_name            = "OB_BACKUP_CONFLICT_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Conflict value",
      .str_user_error        = "%.*s is conflict with %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9066, Conflict value",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9066, %.*s is conflict with %.*s"
};
static const _error _error_OB_BACKUP_DELETE_BACKUP_PIECE_NOT_ALLOWED = {
      .error_name            = "OB_BACKUP_DELETE_BACKUP_PIECE_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "deleting backup piece is not allowed",
      .str_user_error        = "deleting backup piece is not allowed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9069, deleting backup piece is not allowed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9069, deleting backup piece is not allowed"
};
static const _error _error_OB_BACKUP_DEST_NOT_CONNECT = {
      .error_name            = "OB_BACKUP_DEST_NOT_CONNECT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "can not connect to backup destination",
      .str_user_error        = "can not connect to backup destination",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9070, can not connect to backup destination",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9070, can not connect to backup destination"
};
static const _error _error_OB_BACKUP_PERMISSION_DENIED = {
      .error_name            = "OB_BACKUP_PERMISSION_DENIED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no I/O operation permission at the backup destination",
      .str_user_error        = "no I/O operation permission at the backup destination",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9071, no I/O operation permission at the backup destination",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9071, no I/O operation permission at the backup destination"
};
static const _error _error_OB_ESI_SESSION_CONFLICTS = {
      .error_name            = "OB_ESI_SESSION_CONFLICTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "obesi process session conflicts",
      .str_user_error        = "obesi process session conflicts",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9072, obesi process session conflicts",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9072, obesi process session conflicts"
};
static const _error _error_OB_ESI_OBS_ERROR = {
      .error_name            = "OB_ESI_OBS_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "external storage OBS error",
      .str_user_error        = "external storage OBS error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9073, external storage OBS error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9073, external storage OBS error"
};
static const _error _error_OB_BACKUP_VALIDATE_TASK_SKIPPED = {
      .error_name            = "OB_BACKUP_VALIDATE_TASK_SKIPPED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup validation task skipped",
      .str_user_error        = "backup validation task skipped",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9074, backup validation task skipped",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9074, backup validation task skipped"
};
static const _error _error_OB_ESI_IO_ERROR = {
      .error_name            = "OB_ESI_IO_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "obesi process io error",
      .str_user_error        = "obesi process io error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9075, obesi process io error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9075, obesi process io error"
};
static const _error _error_OB_BACKUP_META_INDEX_NOT_EXIST = {
      .error_name            = "OB_BACKUP_META_INDEX_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup meta index does not exist",
      .str_user_error        = "backup meta index does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9076, backup meta index does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9076, backup meta index does not exist"
};
static const _error _error_OB_ARCHIVE_ROUND_NOT_CONTINUOUS = {
      .error_name            = "OB_ARCHIVE_ROUND_NOT_CONTINUOUS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log discontinuous between two archive rounds",
      .str_user_error        = "log discontinuous between two archive rounds",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9077, log discontinuous between two archive rounds",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9077, log discontinuous between two archive rounds"
};
static const _error _error_OB_ARCHIVE_LOG_TO_END = {
      .error_name            = "OB_ARCHIVE_LOG_TO_END",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "archive log is to end",
      .str_user_error        = "archive log is to end",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9078, archive log is to end",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9078, archive log is to end"
};
static const _error _error_OB_ARCHIVE_LOG_RECYCLED = {
      .error_name            = "OB_ARCHIVE_LOG_RECYCLED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "archive log had been recycled",
      .str_user_error        = "archive log had been recycled",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9079, archive log had been recycled",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9079, archive log had been recycled"
};
static const _error _error_OB_BACKUP_FORMAT_FILE_NOT_EXIST = {
      .error_name            = "OB_BACKUP_FORMAT_FILE_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "format file does not exist",
      .str_user_error        = "format file does not exist%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9080, format file does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9080, format file does not exist%s"
};
static const _error _error_OB_BACKUP_FORMAT_FILE_NOT_MATCH = {
      .error_name            = "OB_BACKUP_FORMAT_FILE_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "format file does not match",
      .str_user_error        = "format file does not match%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9081, format file does not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9081, format file does not match%s"
};
static const _error _error_OB_BACKUP_DEVICE_OUT_OF_SPACE = {
      .error_name            = "OB_BACKUP_DEVICE_OUT_OF_SPACE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup device out of space",
      .str_user_error        = "backup device out of space",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9082, backup device out of space",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9082, backup device out of space"
};
static const _error _error_OB_BACKUP_PWRITE_OFFSET_NOT_MATCH = {
      .error_name            = "OB_BACKUP_PWRITE_OFFSET_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the pwrite offset of the object storage is inconsistent",
      .str_user_error        = "the pwrite offset of the object storage is inconsistent",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9083, the pwrite offset of the object storage is inconsistent",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9083, the pwrite offset of the object storage is inconsistent"
};
static const _error _error_OB_BACKUP_PWRITE_CONTENT_NOT_MATCH = {
      .error_name            = "OB_BACKUP_PWRITE_CONTENT_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the contents of pwrite are inconsistent",
      .str_user_error        = "the contents of pwrite are inconsistent",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9084, the contents of pwrite are inconsistent",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9084, the contents of pwrite are inconsistent"
};
static const _error _error_OB_BACKUP_MAJOR_NOT_COVER_MINOR = {
      .error_name            = "OB_BACKUP_MAJOR_NOT_COVER_MINOR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup major sstable range not cover minor sstable",
      .str_user_error        = "backup major sstable range not cover minor sstable",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9085, backup major sstable range not cover minor sstable",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9085, backup major sstable range not cover minor sstable"
};
static const _error _error_OB_BACKUP_ADVANCE_CHECKPOINT_TIMEOUT = {
      .error_name            = "OB_BACKUP_ADVANCE_CHECKPOINT_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "backup advance checkpoint by flush timeout",
      .str_user_error        = "backup advance checkpoint by flush timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9086, backup advance checkpoint by flush timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9086, backup advance checkpoint by flush timeout"
};
static const _error _error_OB_CLOG_RECYCLE_BEFORE_ARCHIVE = {
      .error_name            = "OB_CLOG_RECYCLE_BEFORE_ARCHIVE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "observer clog is recycled before archive",
      .str_user_error        = "observer clog is recycled before archive",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9087, observer clog is recycled before archive",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9087, observer clog is recycled before archive"
};
static const _error _error_OB_SOURCE_TENANT_STATE_NOT_MATCH = {
      .error_name            = "OB_SOURCE_TENANT_STATE_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log restore source tenant state not match, switchover to primary not allowed",
      .str_user_error        = "log restore source tenant state not match, switchover to primary not allowed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9088, log restore source tenant state not match, switchover to primary not allowed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9088, log restore source tenant state not match, switchover to primary not allowed"
};
static const _error _error_OB_SOURCE_LS_STATE_NOT_MATCH = {
      .error_name            = "OB_SOURCE_LS_STATE_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "log restore source ls state not match, switchover to primary not allowed",
      .str_user_error        = "log restore source ls state not match, switchover to primary not allowed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9089, log restore source ls state not match, switchover to primary not allowed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9089, log restore source ls state not match, switchover to primary not allowed"
};
static const _error _error_OB_ESI_SESSION_NOT_EXIST = {
      .error_name            = "OB_ESI_SESSION_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "obesi process session not exist",
      .str_user_error        = "obesi process session not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9090, obesi process session not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9090, obesi process session not exist"
};
static const _error _error_OB_ALREADY_IN_ARCHIVE_MODE = {
      .error_name            = "OB_ALREADY_IN_ARCHIVE_MODE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Already in ARCHIVELOG mode",
      .str_user_error        = "Already in ARCHIVELOG mode",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9091, Already in ARCHIVELOG mode",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9091, Already in ARCHIVELOG mode"
};
static const _error _error_OB_ALREADY_IN_NOARCHIVE_MODE = {
      .error_name            = "OB_ALREADY_IN_NOARCHIVE_MODE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Already in NOARCHIVELOG mode",
      .str_user_error        = "Already in NOARCHIVELOG mode",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9092, Already in NOARCHIVELOG mode",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9092, Already in NOARCHIVELOG mode"
};
static const _error _error_OB_RESTORE_LOG_TO_END = {
      .error_name            = "OB_RESTORE_LOG_TO_END",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Restore log to end",
      .str_user_error        = "Restore log to end",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9093, Restore log to end",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9093, Restore log to end"
};
static const _error _error_OB_LS_RESTORE_FAILED = {
      .error_name            = "OB_LS_RESTORE_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Restore log stream failed",
      .str_user_error        = "Restore log stream failed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9094, Restore log stream failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9094, Restore log stream failed"
};
static const _error _error_OB_NO_TABLET_NEED_BACKUP = {
      .error_name            = "OB_NO_TABLET_NEED_BACKUP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "No tablet need backup",
      .str_user_error        = "No tablet need backup",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9095, No tablet need backup",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9095, No tablet need backup"
};
static const _error _error_OB_ERR_RESTORE_STANDBY_VERSION_LAG = {
      .error_name            = "OB_ERR_RESTORE_STANDBY_VERSION_LAG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "standby binary version is lower than primary data version, standby need upgrade",
      .str_user_error        = "standby binary version is lower than primary data version, standby need upgrade",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9096, standby binary version is lower than primary data version, standby need upgrade",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9096, standby binary version is lower than primary data version, standby need upgrade"
};
static const _error _error_OB_ERR_RESTORE_PRIMARY_TENANT_DROPPED = {
      .error_name            = "OB_ERR_RESTORE_PRIMARY_TENANT_DROPPED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "primary tenant has been dropped",
      .str_user_error        = "primary tenant has been dropped",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9097, primary tenant has been dropped",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9097, primary tenant has been dropped"
};
static const _error _error_OB_CLOUD_OBJECT_NOT_APPENDABLE = {
      .error_name            = "OB_CLOUD_OBJECT_NOT_APPENDABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "normal object in object_storage(oss,cos,etc.) can't be appended content",
      .str_user_error        = "normal object in object_storage(oss,cos,etc.) can't be appended content",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9098, normal object in object_storage(oss,cos,etc.) can't be appended content",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9098, normal object in object_storage(oss,cos,etc.) can't be appended content"
};
static const _error _error_OB_RESTORE_TENANT_FAILED = {
      .error_name            = "OB_RESTORE_TENANT_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "restore tenant failed",
      .str_user_error        = "%s restore failed, %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9099, restore tenant failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9099, %s restore failed, %s"
};
static const _error _error_OB_NO_SUCH_FILE_OR_DIRECTORY = {
      .error_name            = "OB_NO_SUCH_FILE_OR_DIRECTORY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no such file or directory",
      .str_user_error        = "no such file or directory",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9100, no such file or directory",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9100, no such file or directory"
};
static const _error _error_OB_FILE_OR_DIRECTORY_EXIST = {
      .error_name            = "OB_FILE_OR_DIRECTORY_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "file or directory already exist",
      .str_user_error        = "file or directory already exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9101, file or directory already exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9101, file or directory already exist"
};
static const _error _error_OB_FILE_OR_DIRECTORY_PERMISSION_DENIED = {
      .error_name            = "OB_FILE_OR_DIRECTORY_PERMISSION_DENIED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "file or directory permission denied",
      .str_user_error        = "file or directory permission denied",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9102, file or directory permission denied",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9102, file or directory permission denied"
};
static const _error _error_OB_TOO_MANY_OPEN_FILES = {
      .error_name            = "OB_TOO_MANY_OPEN_FILES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "too many open files",
      .str_user_error        = "too many open files",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9103, too many open files",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9103, too many open files"
};
static const _error _error_OB_DIRECT_LOAD_COMMIT_ERROR = {
      .error_name            = "OB_DIRECT_LOAD_COMMIT_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "fail to commit direct load",
      .str_user_error        = "fail to commit direct load",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9104, fail to commit direct load",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9104, fail to commit direct load"
};
static const _error _error_OB_S3_ERROR = {
      .error_name            = "OB_S3_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "S3 error",
      .str_user_error        = "S3 error",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9105, S3 error",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9105, S3 error"
};
static const _error _error_OB_TENANT_SNAPSHOT_NOT_EXIST = {
      .error_name            = "OB_TENANT_SNAPSHOT_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Tenant snapshot does not exist",
      .str_user_error        = "Tenant snapshot \'%.*s\' does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9106, Tenant snapshot does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9106, Tenant snapshot \'%.*s\' does not exist"
};
static const _error _error_OB_TENANT_SNAPSHOT_EXIST = {
      .error_name            = "OB_TENANT_SNAPSHOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Tenant snapshot already exist",
      .str_user_error        = "Tenant snapshot \'%.*s\' already exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9107, Tenant snapshot already exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9107, Tenant snapshot \'%.*s\' already exist"
};
static const _error _error_OB_TENANT_SNAPSHOT_TIMEOUT = {
      .error_name            = "OB_TENANT_SNAPSHOT_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Tenant snapshot task timeout",
      .str_user_error        = "Tenant snapshot task timeout. %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9108, Tenant snapshot task timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9108, Tenant snapshot task timeout. %.*s"
};
static const _error _error_OB_CLONE_TENANT_TIMEOUT = {
      .error_name            = "OB_CLONE_TENANT_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Clone tenant timeout",
      .str_user_error        = "Clone tenant timeout. %.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9109, Clone tenant timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9109, Clone tenant timeout. %.*s"
};
static const _error _error_OB_ERR_CLONE_TENANT = {
      .error_name            = "OB_ERR_CLONE_TENANT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Tenant clone job failed",
      .str_user_error        = "%.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9110, Tenant clone job failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9110, %.*s"
};
static const _error _error_OB_ERR_TENANT_SNAPSHOT = {
      .error_name            = "OB_ERR_TENANT_SNAPSHOT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Tenant snapshot task failed",
      .str_user_error        = "%.*s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9111, Tenant snapshot task failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9111, %.*s"
};
static const _error _error_OB_TENANT_SNAPSHOT_LOCK_CONFLICT = {
      .error_name            = "OB_TENANT_SNAPSHOT_LOCK_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Tenant snapshot lock conflict",
      .str_user_error        = "%s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9112, Tenant snapshot lock conflict",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9112, %s"
};
static const _error _error_OB_ERR_RESIZE_FILE_TO_SMALLER = {
      .error_name            = "OB_ERR_RESIZE_FILE_TO_SMALLER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Extend ssblock file to smaller is not allowed",
      .str_user_error        = "Extend ssblock file to smaller is not allowed",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9200, Extend ssblock file to smaller is not allowed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9200, Extend ssblock file to smaller is not allowed"
};
static const _error _error_OB_MARK_BLOCK_INFO_TIMEOUT = {
      .error_name            = "OB_MARK_BLOCK_INFO_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Mark blocks timeout(5s) in auto extend process when alloc block fail",
      .str_user_error        = "Mark blocks timeout(5s) in auto extend process when alloc block fail",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9201, Mark blocks timeout(5s) in auto extend process when alloc block fail",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9201, Mark blocks timeout(5s) in auto extend process when alloc block fail"
};
static const _error _error_OB_NOT_READY_TO_EXTEND_FILE = {
      .error_name            = "OB_NOT_READY_TO_EXTEND_FILE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Auto extend param is not ready to start extending file",
      .str_user_error        = "Auto extend param is not ready to start extending file",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9202, Auto extend param is not ready to start extending file",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9202, Auto extend param is not ready to start extending file"
};
static const _error _error_OB_ERR_DUPLICATE_HAVING_CLAUSE_IN_TABLE_EXPRESSION = {
      .error_name            = "OB_ERR_DUPLICATE_HAVING_CLAUSE_IN_TABLE_EXPRESSION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Duplicate having-clause in table expression",
      .str_user_error        = "Duplicate having-clause in table expression",
      .oracle_errno          = 119,
      .oracle_str_error      = "PLS-00119: Duplicate having-clause in table expression",
      .oracle_str_user_error = "PLS-00119: Duplicate having-clause in table expression"
};
static const _error _error_OB_ERR_INOUT_PARAM_PLACEMENT_NOT_PROPERLY = {
      .error_name            = "OB_ERR_INOUT_PARAM_PLACEMENT_NOT_PROPERLY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "OUT and IN/OUT modes cannot be used in this context",
      .str_user_error        = "OUT and IN/OUT modes cannot be used in this context",
      .oracle_errno          = 254,
      .oracle_str_error      = "PLS-00254: OUT and IN/OUT modes cannot be used in this context",
      .oracle_str_user_error = "PLS-00254: OUT and IN/OUT modes cannot be used in this context"
};
static const _error _error_OB_ERR_OBJECT_NOT_FOUND = {
      .error_name            = "OB_ERR_OBJECT_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "object not found",
      .str_user_error        = "object '%.*s' of type %.*s not found in schema '%.*s'",
      .oracle_errno          = 31603,
      .oracle_str_error      = "ORA-31603: object not found",
      .oracle_str_user_error = "ORA-31603: object '%.*s' of type %.*s not found in schema '%.*s'"
};
static const _error _error_OB_ERR_INVALID_INPUT_VALUE = {
      .error_name            = "OB_ERR_INVALID_INPUT_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid input value",
      .str_user_error        = "invalid input value %.*s for parameter %.*s in function %.*s",
      .oracle_errno          = 31600,
      .oracle_str_error      = "ORA-31600: invalid input value",
      .oracle_str_user_error = "ORA-31600: invalid input value %.*s for parameter %.*s in function %.*s"
};
static const _error _error_OB_ERR_GOTO_BRANCH_ILLEGAL = {
      .error_name            = "OB_ERR_GOTO_BRANCH_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_LILABEL_MISMATCH,
      .sqlstate              = "42000",
      .str_error             = "no matching label: %.*s",
      .str_user_error        = "no matching label: %.*s",
      .oracle_errno          = 375,
      .oracle_str_error      = "PLS-00375: illegal GOTO statement; this GOTO cannot branch to label '%.*s'",
      .oracle_str_user_error = "PLS-00375: illegal GOTO statement; this GOTO cannot branch to label '%.*s'"
};
static const _error _error_OB_ERR_ONLY_SCHEMA_LEVEL_ALLOW = {
      .error_name            = "OB_ERR_ONLY_SCHEMA_LEVEL_ALLOW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Only schema-level programs allow AUTHID or DEFAULT COLLATION clause",
      .str_user_error        = "Only schema-level programs allow %s",
      .oracle_errno          = 157,
      .oracle_str_error      = "PLS-00157: Only schema-level programs allow AUTHID or DEFAULT COLLATION clause",
      .oracle_str_user_error = "PLS-00157: Only schema-level programs allow %s"
};
static const _error _error_OB_ERR_DECL_MORE_THAN_ONCE = {
      .error_name            = "OB_ERR_DECL_MORE_THAN_ONCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "at most one declaration for identifier is permitted",
      .str_user_error        = "at most one declaration for '%.*s' is permitted",
      .oracle_errno          = 371,
      .oracle_str_error      = "PLS-00371: at most one declaration for identifier is permitted",
      .oracle_str_user_error = "PLS-00371: at most one declaration for '%.*s' is permitted"
};
static const _error _error_OB_ERR_DUPLICATE_FILED = {
      .error_name            = "OB_ERR_DUPLICATE_FILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate fields in RECORD,TABLE or argument list are not permitted",
      .str_user_error        = "duplicate fields in RECORD,TABLE or argument list are not permitted",
      .oracle_errno          = 410,
      .oracle_str_error      = "PLS-00410: duplicate fields in RECORD,TABLE or argument list are not permitted",
      .oracle_str_user_error = "PLS-00410: duplicate fields in RECORD,TABLE or argument list are not permitted"
};
static const _error _error_OB_ERR_PRAGMA_ILLEGAL = {
      .error_name            = "OB_ERR_PRAGMA_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Pragma string cannot be specified here",
      .str_user_error        = "Pragma %s cannot be specified here",
      .oracle_errno          = 710,
      .oracle_str_error      = "PLS-00710: Pragma string cannot be specified here",
      .oracle_str_user_error = "PLS-00710: Pragma %s cannot be specified here"
};
static const _error _error_OB_ERR_EXIT_CONTINUE_ILLEGAL = {
      .error_name            = "OB_ERR_EXIT_CONTINUE_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "illegal EXIT/CONTINUE statement; it must appear inside a loop",
      .str_user_error        = "illegal EXIT/CONTINUE statement; it must appear inside a loop",
      .oracle_errno          = 376,
      .oracle_str_error      = "PLS-00376: illegal EXIT/CONTINUE statement; it must appear inside a loop",
      .oracle_str_user_error = "PLS-00376: illegal EXIT/CONTINUE statement; it must appear inside a loop"
};
static const _error _error_OB_ERR_LABEL_ILLEGAL = {
      .error_name            = "OB_ERR_LABEL_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "EXIT/CONTINUE label must label a LOOP statement",
      .str_user_error        = "EXIT/CONTINUE label '%.*s' must label a LOOP statement",
      .oracle_errno          = 373,
      .oracle_str_error      = "PLS-00373: EXIT/CONTINUE label must label a LOOP statement",
      .oracle_str_user_error = "PLS-00373: EXIT/CONTINUE label '%.*s' must label a LOOP statement"
};
static const _error _error_OB_ERR_CURSOR_LEFT_ASSIGN = {
      .error_name            = "OB_ERR_CURSOR_LEFT_ASSIGN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "expression '%.*s' is inappropriate as the left hand side of an assignment statement",
      .str_user_error        = "expression '%.*s' is inappropriate as the left hand side of an assignment statement",
      .oracle_errno          = 321,
      .oracle_str_error      = "PLS-00321: expression '%.*s' is inappropriate as the left hand side of anassignment statement",
      .oracle_str_user_error = "PLS-00321: expression '%.*s' is inappropriate as the left hand side of anassignment statement"
};
static const _error _error_OB_ERR_INIT_NOTNULL_ILLEGAL = {
      .error_name            = "OB_ERR_INIT_NOTNULL_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "a variable declared NOT NULL must have an initialization assignment",
      .str_user_error        = "a variable declared NOT NULL must have an initialization assignment",
      .oracle_errno          = 218,
      .oracle_str_error      = "PLS-00218: a variable declared NOT NULL must have an initialization assignment",
      .oracle_str_user_error = "PLS-00218: a variable declared NOT NULL must have an initialization assignment"
};
static const _error _error_OB_ERR_INIT_CONST_ILLEGAL = {
      .error_name            = "OB_ERR_INIT_CONST_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "declaration of a constant 'string' must contain an initialization assignment",
      .str_user_error        = "declaration of a constant '%.*s' must contain an initialization assignment",
      .oracle_errno          = 322,
      .oracle_str_error      = "PLS-00322: declaration of a constant 'string' must contain an initialization assignment",
      .oracle_str_user_error = "PLS-00322: declaration of a constant '%.*s' must contain an initialization assignment"
};
static const _error _error_OB_ERR_CURSOR_VAR_IN_PKG = {
      .error_name            = "OB_ERR_CURSOR_VAR_IN_PKG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Cursor Variables cannot be declared as part of a package",
      .str_user_error        = "Cursor Variables cannot be declared as part of a package",
      .oracle_errno          = 994,
      .oracle_str_error      = "PLS-00994: Cursor Variables cannot be declared as part of a package",
      .oracle_str_user_error = "PLS-00994: Cursor Variables cannot be declared as part of a package"
};
static const _error _error_OB_ERR_LIMIT_CLAUSE = {
      .error_name            = "OB_ERR_LIMIT_CLAUSE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "value in LIMIT clause: \'%.*s\' use is invalid",
      .str_user_error        = "value in LIMIT clause: \'%.*s\' use is invalid",
      .oracle_errno          = 438,
      .oracle_str_error      = "PLS-00438: value in LIMIT clause: \'%.*s\' use is invalid",
      .oracle_str_user_error = "PLS-00438: value in LIMIT clause: \'%.*s\' use is invalid"
};
static const _error _error_OB_ERR_EXPRESSION_WRONG_TYPE = {
      .error_name            = "OB_ERR_EXPRESSION_WRONG_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "expression is of wrong type",
      .str_user_error        = "expression is of wrong type",
      .oracle_errno          = 382,
      .oracle_str_error      = "PLS-00382: expression is of wrong type",
      .oracle_str_user_error = "PLS-00382: expression is of wrong type"
};
static const _error _error_OB_ERR_SPEC_NOT_EXIST = {
      .error_name            = "OB_ERR_SPEC_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot compile type body without its specification",
      .str_user_error        = "cannot compile body of '%.*s' without its specification",
      .oracle_errno          = 304,
      .oracle_str_error      = "PLS-00304: cannot compile type body without its specification",
      .oracle_str_user_error = "PLS-00304: cannot compile body of '%.*s' without its specification"
};
static const _error _error_OB_ERR_TYPE_SPEC_NO_ROUTINE = {
      .error_name            = "OB_ERR_TYPE_SPEC_NO_ROUTINE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "subprogram is declared in an object type body and must be defined in the object type specification",
      .str_user_error        = "subprogram '%.*s' is declared in an object type body and must be defined in the object type specification",
      .oracle_errno          = 539,
      .oracle_str_error      = "PLS-00539: subprogram is declared in an object type body and must be defined in the object type specification",
      .oracle_str_user_error = "PLS-00539: subprogram '%.*s' is declared in an object type body and must be defined in the object type specification"
};
static const _error _error_OB_ERR_TYPE_BODY_NO_ROUTINE = {
      .error_name            = "OB_ERR_TYPE_BODY_NO_ROUTINE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "subprogram or cursor is declared in an object type specification and must be defined in the object type body",
      .str_user_error        = "subprogram or cursor '%.*s' is declared in an object type specification and must be defined in the object type body",
      .oracle_errno          = 538,
      .oracle_str_error      = "PLS-00538: subprogram or cursor is declared in an object type specification and must be defined in the object type body",
      .oracle_str_user_error = "PLS-00538: subprogram or cursor '%.*s' is declared in an object type specification and must be defined in the object type body"
};
static const _error _error_OB_ERR_BOTH_ORDER_MAP = {
      .error_name            = "OB_ERR_BOTH_ORDER_MAP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "An object type may have only 1 MAP or 1 ORDER method",
      .str_user_error        = "An object type may have only 1 MAP or 1 ORDER method",
      .oracle_errno          = 154,
      .oracle_str_error      = "PLS-00154: An object type may have only 1 MAP or 1 ORDER method",
      .oracle_str_user_error = "PLS-00154: An object type may have only 1 MAP or 1 ORDER method"
};
static const _error _error_OB_ERR_NO_ORDER_MAP = {
      .error_name            = "OB_ERR_NO_ORDER_MAP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "A MAP or ORDER function is required for comparing objects in PL/SQL",
      .str_user_error        = "A MAP or ORDER function is required for comparing objects in PL/SQL",
      .oracle_errno          = 526,
      .oracle_str_error      = "PLS-00526: A MAP or ORDER function is required for comparing objects in PL/SQL",
      .oracle_str_user_error = "PLS-00526: A MAP or ORDER function is required for comparing objects in PL/SQL"
};
static const _error _error_OB_ERR_ORDER_MAP_NEED_BE_FUNC = {
      .error_name            = "OB_ERR_ORDER_MAP_NEED_BE_FUNC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Only a function may be a MAP, ORDER or CONSTRUCTOR method",
      .str_user_error        = "Only a function may be a MAP, ORDER or CONSTRUCTOR method",
      .oracle_errno          = 155,
      .oracle_str_error      = "PLS-00155: Only a function may be a MAP, ORDER or CONSTRUCTOR method",
      .oracle_str_user_error = "PLS-00155: Only a function may be a MAP, ORDER or CONSTRUCTOR method"
};
static const _error _error_OB_ERR_IDENTIFIER_TOO_LONG = {
      .error_name            = "OB_ERR_IDENTIFIER_TOO_LONG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_LONG_IDENT,
      .sqlstate              = "42000",
      .str_error             = "Identifier name \'%.*s\' is too long",
      .str_user_error        = "Identifier name \'%.*s\' is too long",
      .oracle_errno          = 114,
      .oracle_str_error      = "PLS-00114: identifier '%.*s' too long",
      .oracle_str_user_error = "PLS-00114: identifier '%.*s' too long"
};
static const _error _error_OB_ERR_INVOKE_STATIC_BY_INSTANCE = {
      .error_name            = "OB_ERR_INVOKE_STATIC_BY_INSTANCE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "a static method cannot be invoked on an instance value",
      .str_user_error        = "a static method cannot be invoked on an instance value",
      .oracle_errno          = 587,
      .oracle_str_error      = "PLS-00587: a static method cannot be invoked on an instance value",
      .oracle_str_user_error = "PLS-00587: a static method cannot be invoked on an instance value"
};
static const _error _error_OB_ERR_CONS_NAME_ILLEGAL = {
      .error_name            = "OB_ERR_CONS_NAME_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "constructor method name must match type name",
      .str_user_error        = "constructor method name must match type name",
      .oracle_errno          = 658,
      .oracle_str_error      = "PLS-00658: constructor method name must match type name",
      .oracle_str_user_error = "PLS-00658: constructor method name must match type name"
};
static const _error _error_OB_ERR_ATTR_FUNC_CONFLICT = {
      .error_name            = "OB_ERR_ATTR_FUNC_CONFLICT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "previous use of conflicts with this user",
      .str_user_error        = "previous use of '%.*s' conflicts with this use",
      .oracle_errno          = 305,
      .oracle_str_error      = "PLS-00305: previous use of conflicts with this use",
      .oracle_str_user_error = "PLS-00305: previous use of '%.*s' conflicts with this use"
};
static const _error _error_OB_ERR_SELF_PARAM_NOT_OUT = {
      .error_name            = "OB_ERR_SELF_PARAM_NOT_OUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the SELF parameter can be declared only as IN or as IN OUT",
      .str_user_error        = "the SELF parameter can be declared only as IN or as IN OUT",
      .oracle_errno          = 594,
      .oracle_str_error      = "PLS-00594: the SELF parameter can be declared only as IN or as IN OUT",
      .oracle_str_user_error = "PLS-00594: the SELF parameter can be declared only as IN or as IN OUT"
};
static const _error _error_OB_ERR_MAP_RET_SCALAR_TYPE = {
      .error_name            = "OB_ERR_MAP_RET_SCALAR_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "MAP methods must return a scalar type",
      .str_user_error        = "MAP methods must return a scalar type",
      .oracle_errno          = 522,
      .oracle_str_error      = "PLS-00522: MAP methods must return a scalar type",
      .oracle_str_user_error = "PLS-00522: MAP methods must return a scalar type"
};
static const _error _error_OB_ERR_MAP_MORE_THAN_SELF_PARAM = {
      .error_name            = "OB_ERR_MAP_MORE_THAN_SELF_PARAM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "MAP methods must be declared without any parameters other than (optional) SELF",
      .str_user_error        = "MAP methods must be declared without any parameters other than (optional) SELF",
      .oracle_errno          = 520,
      .oracle_str_error      = "PLS-00520: MAP methods must be declared without any parameters other than (optional) SELF",
      .oracle_str_user_error = "PLS-00520: MAP methods must be declared without any parameters other than (optional) SELF"
};
static const _error _error_OB_ERR_ORDER_RET_INT_TYPE = {
      .error_name            = "OB_ERR_ORDER_RET_INT_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ORDER methods must return an INTEGER",
      .str_user_error        = "ORDER methods must return an INTEGER",
      .oracle_errno          = 523,
      .oracle_str_error      = "PLS-00523: ORDER methods must return an INTEGER",
      .oracle_str_user_error = "PLS-00523: ORDER methods must return an INTEGER"
};
static const _error _error_OB_ERR_ORDER_PARAM_TYPE = {
      .error_name            = "OB_ERR_ORDER_PARAM_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The parameter type in an ORDER method must be the containing object type",
      .str_user_error        = "The parameter type in an ORDER method must be the containing object type",
      .oracle_errno          = 524,
      .oracle_str_error      = "PLS-00524: The parameter type in an ORDER method must be the containing object type",
      .oracle_str_user_error = "PLS-00524: The parameter type in an ORDER method must be the containing object type"
};
static const _error _error_OB_ERR_OBJ_CMP_SQL = {
      .error_name            = "OB_ERR_OBJ_CMP_SQL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Within SQL statements, only equality comparisons of objects are allowed without a map or order function",
      .str_user_error        = "Within SQL statements, only equality comparisons of objects are allowed without a map or order function",
      .oracle_errno          = 525,
      .oracle_str_error      = "PLS-00525: Within SQL statements, only equality comparisons of objects are allowed without a map or order function",
      .oracle_str_user_error = "PLS-00525: Within SQL statements, only equality comparisons of objects are allowed without a map or order function"
};
static const _error _error_OB_ERR_MAP_ORDER_PRAGMA = {
      .error_name            = "OB_ERR_MAP_ORDER_PRAGMA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "MAP or ORDER functions require a PRAGMA RESTRICT_REFERENCES specifying :WNDS,WNPS,RNPS,RNDS",
      .str_user_error        = "MAP or ORDER functions require a PRAGMA RESTRICT_REFERENCES specifying :WNDS,WNPS,RNPS,RNDS",
      .oracle_errno          = 527,
      .oracle_str_error      = "PLS-00527: MAP or ORDER functions require a PRAGMA RESTRICT_REFERENCES specifying :WNDS,WNPS,RNPS,RNDS",
      .oracle_str_user_error = "PLS-00527: MAP or ORDER functions require a PRAGMA RESTRICT_REFERENCES specifying :WNDS,WNPS,RNPS,RNDS"
};
static const _error _error_OB_ERR_ORDER_PARAM_MUST_IN_MODE = {
      .error_name            = "OB_ERR_ORDER_PARAM_MUST_IN_MODE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The parameters to an ORDER function must have IN mode",
      .str_user_error        = "The parameters to an ORDER function must have IN mode",
      .oracle_errno          = 528,
      .oracle_str_error      = "PLS-00528: The parameters to an ORDER function must have IN mode",
      .oracle_str_user_error = "PLS-00528: The parameters to an ORDER function must have IN mode"
};
static const _error _error_OB_ERR_ORDER_PARAM_NOT_TWO = {
      .error_name            = "OB_ERR_ORDER_PARAM_NOT_TWO",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ORDER methods must be declared with 1 (one) parameter in addition to (optional) SELF",
      .str_user_error        = "ORDER methods must be declared with 1 (one) parameter in addition to (optional) SELF",
      .oracle_errno          = 521,
      .oracle_str_error      = "PLS-00521: ORDER methods must be declared with 1 (one) parameter in addition to (optional) SELF",
      .oracle_str_user_error = "PLS-00521: ORDER methods must be declared with 1 (one) parameter in addition to (optional) SELF"
};
static const _error _error_OB_ERR_TYPE_REF_REFCURSIVE = {
      .error_name            = "OB_ERR_TYPE_REF_REFCURSIVE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "type is malformed because it is a non-REF mutually recursive type",
      .str_user_error        = "type '%.*s' is malformed because it is a non-REF mutually recursive type",
      .oracle_errno          = 318,
      .oracle_str_error      = "PLS-00318: type is malformed because it is a non-REF mutually recursive type",
      .oracle_str_user_error = "PLS-00318: type '%.*s' is malformed because it is a non-REF mutually recursive type"
};
static const _error _error_OB_ERR_DIRECTIVE_ERROR = {
      .error_name            = "OB_ERR_DIRECTIVE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "$ERROR: string",
      .str_user_error        = "$ERROR: %.*s",
      .oracle_errno          = 179,
      .oracle_str_error      = "PLS-00179: $ERROR: string",
      .oracle_str_user_error = "PLS-00179: $ERROR: %.*s"
};
static const _error _error_OB_ERR_CONS_HAS_RET_NODE = {
      .error_name            = "OB_ERR_CONS_HAS_RET_NODE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "RETURN statement in a CONSTRUCTOR cannot include an expression",
      .str_user_error        = "RETURN statement in a CONSTRUCTOR cannot include an expression",
      .oracle_errno          = 661,
      .oracle_str_error      = "PLS-00661: RETURN statement in a CONSTRUCTOR cannot include an expression",
      .oracle_str_user_error = "PLS-00661: RETURN statement in a CONSTRUCTOR cannot include an expression"
};
static const _error _error_OB_ERR_CALL_WRONG_ARG = {
      .error_name            = "OB_ERR_CALL_WRONG_ARG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "wrong number or types of arguments in call to procedure",
      .str_user_error        = "wrong number or types of arguments in call to '%.*s'",
      .oracle_errno          = 306,
      .oracle_str_error      = "PLS-00306: wrong number or types of arguments in call to procedure",
      .oracle_str_user_error = "PLS-00306: wrong number or types of arguments in call to '%.*s'"
};
static const _error _error_OB_ERR_FUNC_NAME_SAME_WITH_CONS = {
      .error_name            = "OB_ERR_FUNC_NAME_SAME_WITH_CONS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "name must be a type",
      .str_user_error        = "'%.*s' must be a type",
      .oracle_errno          = 488,
      .oracle_str_error      = "PLS-00488: name must be a type",
      .oracle_str_user_error = "PLS-00488: '%.*s' must be a type"
};
static const _error _error_OB_ERR_FUNC_DUP = {
      .error_name            = "OB_ERR_FUNC_DUP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "too many declarations of function match this call",
      .str_user_error        = "too many declarations of '%.*s' match this call",
      .oracle_errno          = 307,
      .oracle_str_error      = "PLS-00307: too many declarations of function match this call",
      .oracle_str_user_error = "PLS-00307: too many declarations of '%.*s' match this call"
};
static const _error _error_OB_ERR_WHEN_CLAUSE = {
      .error_name            = "OB_ERR_WHEN_CLAUSE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "WHEN clause cannot be used with table level triggers",
      .str_user_error        = "WHEN clause cannot be used with table level triggers",
      .oracle_errno          = 4077,
      .oracle_str_error      = "ORA-04077: WHEN clause cannot be used with table level triggers",
      .oracle_str_user_error = "ORA-04077: WHEN clause cannot be used with table level triggers"
};
static const _error _error_OB_ERR_NEW_OLD_REFERENCES = {
      .error_name            = "OB_ERR_NEW_OLD_REFERENCES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "NEW or OLD references not allowed in table level triggers",
      .str_user_error        = "NEW or OLD references not allowed in table level triggers",
      .oracle_errno          = 4082,
      .oracle_str_error      = "ORA-04082: NEW or OLD references not allowed in table level triggers",
      .oracle_str_user_error = "ORA-04082: NEW or OLD references not allowed in table level triggers"
};
static const _error _error_OB_ERR_TYPE_DECL_ILLEGAL = {
      .error_name            = "OB_ERR_TYPE_DECL_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "%%TYPE must be applied to a variable, column, field or attribute, not to other",
      .str_user_error        = "%%TYPE must be applied to a variable, column, field or attribute, not to '%.*s'",
      .oracle_errno          = 206,
      .oracle_str_error      = "PLS-00206: %%TYPE must be applied to a variable, column, field or attribute, not to other",
      .oracle_str_user_error = "PLS-00206: %%TYPE must be applied to a variable, column, field or attribute, not to '%.*s'"
};
static const _error _error_OB_ERR_OBJECT_INVALID = {
      .error_name            = "OB_ERR_OBJECT_INVALID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "object is invalid",
      .str_user_error        = "object '%.*s' is invalid",
      .oracle_errno          = 905,
      .oracle_str_error      = "PLS-00905: object is invalid",
      .oracle_str_user_error = "PLS-00905: object '%.*s' is invalid"
};
static const _error _error_OB_ERR_XML_PARSE = {
      .error_name            = "OB_ERR_XML_PARSE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_VALUE,
      .sqlstate              = "HY000",
      .str_error             = "XML parsing failed",
      .str_user_error        = "XML parsing failed",
      .oracle_errno          = 31011,
      .oracle_str_error      = "ORA-31011: XML parsing failed",
      .oracle_str_user_error = "ORA-31011: XML parsing failed"
};
static const _error _error_OB_ERR_EXP_NOT_ASSIGNABLE = {
      .error_name            = "OB_ERR_EXP_NOT_ASSIGNABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "expression cannot be used as an assignment",
      .str_user_error        = "expression '%.*s' cannot be used as an assignment",
      .oracle_errno          = 363,
      .oracle_str_error      = "PLS-00363: expression cannot be used as an assignment",
      .oracle_str_user_error = "PLS-00363: expression '%.*s' cannot be used as an assignment"
};
static const _error _error_OB_ERR_CURSOR_CONTAIN_BOTH_REGULAR_AND_ARRAY = {
      .error_name            = "OB_ERR_CURSOR_CONTAIN_BOTH_REGULAR_AND_ARRAY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Cursor contains both regular and array defines which is illegal",
      .str_user_error        = "Cursor contains both regular and array defines which is illegal",
      .oracle_errno          = 29256,
      .oracle_str_error      = "ORA-29256: Cursor contains both regular and array defines which is illegal",
      .oracle_str_user_error = "ORA-29256: Cursor contains both regular and array defines which is illegal"
};
static const _error _error_OB_ERR_STATIC_BOOL_EXPR = {
      .error_name            = "OB_ERR_STATIC_BOOL_EXPR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "a static boolean expression must be used",
      .str_user_error        = "a static boolean expression must be used",
      .oracle_errno          = 174,
      .oracle_str_error      = "PLS-00174: a static boolean expression must be used",
      .oracle_str_user_error = "PLS-00174: a static boolean expression must be used"
};
static const _error _error_OB_ERR_DIRECTIVE_CONTEXT = {
      .error_name            = "OB_ERR_DIRECTIVE_CONTEXT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "preprocessor directives are not supported in this context",
      .str_user_error        = "preprocessor directives are not supported in this context",
      .oracle_errno          = 180,
      .oracle_str_error      = "PLS-00180: preprocessor directives are not supported in this context",
      .oracle_str_user_error = "PLS-00180: preprocessor directives are not supported in this context"
};
static const _error _error_OB_UTL_FILE_INVALID_PATH = {
      .error_name            = "OB_UTL_FILE_INVALID_PATH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid directory path",
      .str_user_error        = "invalid directory path",
      .oracle_errno          = 29280,
      .oracle_str_error      = "ORA-29280: invalid directory path",
      .oracle_str_user_error = "ORA-29280: invalid directory path"
};
static const _error _error_OB_UTL_FILE_INVALID_MODE = {
      .error_name            = "OB_UTL_FILE_INVALID_MODE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid mode",
      .str_user_error        = "invalid mode",
      .oracle_errno          = 29281,
      .oracle_str_error      = "ORA-29281: invalid mode",
      .oracle_str_user_error = "ORA-29281: invalid mode"
};
static const _error _error_OB_UTL_FILE_INVALID_FILEHANDLE = {
      .error_name            = "OB_UTL_FILE_INVALID_FILEHANDLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid file ID",
      .str_user_error        = "invalid file ID",
      .oracle_errno          = 29282,
      .oracle_str_error      = "ORA-29282: invalid file ID",
      .oracle_str_user_error = "ORA-29282: invalid file ID"
};
static const _error _error_OB_UTL_FILE_INVALID_OPERATION = {
      .error_name            = "OB_UTL_FILE_INVALID_OPERATION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid file operation",
      .str_user_error        = "invalid file operation: %.*s",
      .oracle_errno          = 29283,
      .oracle_str_error      = "ORA-29283: invalid file operation",
      .oracle_str_user_error = "ORA-29283: invalid file operation: %.*s"
};
static const _error _error_OB_UTL_FILE_READ_ERROR = {
      .error_name            = "OB_UTL_FILE_READ_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "file read error",
      .str_user_error        = "file read error",
      .oracle_errno          = 29284,
      .oracle_str_error      = "ORA-29284: file read error",
      .oracle_str_user_error = "ORA-29284: file read error"
};
static const _error _error_OB_UTL_FILE_WRITE_ERROR = {
      .error_name            = "OB_UTL_FILE_WRITE_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "file write error",
      .str_user_error        = "file write error",
      .oracle_errno          = 29285,
      .oracle_str_error      = "ORA-29285: file write error",
      .oracle_str_user_error = "ORA-29285: file write error"
};
static const _error _error_OB_UTL_FILE_INTERNAL_ERROR = {
      .error_name            = "OB_UTL_FILE_INTERNAL_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "internal error",
      .str_user_error        = "internal error",
      .oracle_errno          = 29286,
      .oracle_str_error      = "ORA-29286: internal error",
      .oracle_str_user_error = "ORA-29286: internal error"
};
static const _error _error_OB_UTL_FILE_CHARSETMISMATCH = {
      .error_name            = "OB_UTL_FILE_CHARSETMISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "character set mismatch",
      .str_user_error        = "character set mismatch",
      .oracle_errno          = 29298,
      .oracle_str_error      = "ORA-29298: character set mismatch",
      .oracle_str_user_error = "ORA-29298: character set mismatch"
};
static const _error _error_OB_UTL_FILE_INVALID_MAXLINESIZE = {
      .error_name            = "OB_UTL_FILE_INVALID_MAXLINESIZE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid maximum line size",
      .str_user_error        = "invalid maximum line size",
      .oracle_errno          = 29287,
      .oracle_str_error      = "ORA-29287: invalid maximum line size",
      .oracle_str_user_error = "ORA-29287: invalid maximum line size"
};
static const _error _error_OB_UTL_FILE_INVALID_FILENAME = {
      .error_name            = "OB_UTL_FILE_INVALID_FILENAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid file name",
      .str_user_error        = "invalid file name",
      .oracle_errno          = 29288,
      .oracle_str_error      = "ORA-29288: invalid file name",
      .oracle_str_user_error = "ORA-29288: invalid file name"
};
static const _error _error_OB_UTL_FILE_ACCESS_DENIED = {
      .error_name            = "OB_UTL_FILE_ACCESS_DENIED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "directory access denied",
      .str_user_error        = "directory access denied",
      .oracle_errno          = 29289,
      .oracle_str_error      = "ORA-29289: directory access denied",
      .oracle_str_user_error = "ORA-29289: directory access denied"
};
static const _error _error_OB_UTL_FILE_INVALID_OFFSET = {
      .error_name            = "OB_UTL_FILE_INVALID_OFFSET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid offset specified for seek",
      .str_user_error        = "invalid offset specified for seek",
      .oracle_errno          = 29290,
      .oracle_str_error      = "ORA-29290: invalid offset specified for seek",
      .oracle_str_user_error = "ORA-29290: invalid offset specified for seek"
};
static const _error _error_OB_UTL_FILE_DELETE_FAILED = {
      .error_name            = "OB_UTL_FILE_DELETE_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "file remove operation failed",
      .str_user_error        = "file remove operation failed",
      .oracle_errno          = 29291,
      .oracle_str_error      = "ORA-29291: file remove operation failed",
      .oracle_str_user_error = "ORA-29291: file remove operation failed"
};
static const _error _error_OB_UTL_FILE_RENAME_FAILED = {
      .error_name            = "OB_UTL_FILE_RENAME_FAILED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "file rename operation failed",
      .str_user_error        = "file rename operation failed",
      .oracle_errno          = 29292,
      .oracle_str_error      = "ORA-29292: file rename operation failed",
      .oracle_str_user_error = "ORA-29292: file rename operation failed"
};
static const _error _error_OB_ERR_BIND_TYPE_NOT_MATCH_COLUMN = {
      .error_name            = "OB_ERR_BIND_TYPE_NOT_MATCH_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "type of out argument must match type of column or bind variable",
      .str_user_error        = "type of out argument must match type of column or bind variable",
      .oracle_errno          = 6562,
      .oracle_str_error      = "ORA-06562: type of out argument must match type of column or bind variable",
      .oracle_str_user_error = "ORA-06562: type of out argument must match type of column or bind variable"
};
static const _error _error_OB_ERR_NESTED_TABLE_IN_TRI = {
      .error_name            = "OB_ERR_NESTED_TABLE_IN_TRI",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Nested table clause allowed only for INSTEAD OF triggers",
      .str_user_error        = "Nested table clause allowed only for INSTEAD OF triggers",
      .oracle_errno          = 25009,
      .oracle_str_error      = "ORA-25009: Nested table clause allowed only for INSTEAD OF triggers",
      .oracle_str_user_error = "ORA-25009: Nested table clause allowed only for INSTEAD OF triggers"
};
static const _error _error_OB_ERR_COL_LIST_IN_TRI = {
      .error_name            = "OB_ERR_COL_LIST_IN_TRI",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "column list not valid for this trigger type",
      .str_user_error        = "column list not valid for this trigger type",
      .oracle_errno          = 4073,
      .oracle_str_error      = "ORA-04073: column list not valid for this trigger type",
      .oracle_str_user_error = "ORA-04073: column list not valid for this trigger type"
};
static const _error _error_OB_ERR_WHEN_CLAUSE_IN_TRI = {
      .error_name            = "OB_ERR_WHEN_CLAUSE_IN_TRI",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "WHEN clause is not allowed in INSTEAD OF triggers",
      .str_user_error        = "WHEN clause is not allowed in INSTEAD OF triggers",
      .oracle_errno          = 25004,
      .oracle_str_error      = "ORA-25004: WHEN clause is not allowed in INSTEAD OF triggers",
      .oracle_str_user_error = "ORA-25004: WHEN clause is not allowed in INSTEAD OF triggers"
};
static const _error _error_OB_ERR_INSTEAD_TRI_ON_TABLE = {
      .error_name            = "OB_ERR_INSTEAD_TRI_ON_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot create INSTEAD OF triggers on tables",
      .str_user_error        = "cannot create INSTEAD OF triggers on tables",
      .oracle_errno          = 25002,
      .oracle_str_error      = "ORA-25002: cannot create INSTEAD OF triggers on tables",
      .oracle_str_user_error = "ORA-25002: cannot create INSTEAD OF triggers on tables"
};
static const _error _error_OB_ERR_RETURNING_CLAUSE = {
      .error_name            = "OB_ERR_RETURNING_CLAUSE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unsupported feature with RETURNING clause",
      .str_user_error        = "unsupported feature with RETURNING clause",
      .oracle_errno          = 22816,
      .oracle_str_error      = "ORA-22816: unsupported feature with RETURNING clause",
      .oracle_str_user_error = "ORA-22816: unsupported feature with RETURNING clause"
};
static const _error _error_OB_ERR_XSLT_PARSE = {
      .error_name            = "OB_ERR_XSLT_PARSE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "document is not a stylesheet",
      .str_user_error        = "document is not a stylesheet",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9574, document is not a stylesheet",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9574, document is not a stylesheet"
};
static const _error _error_OB_ERR_NO_RETURN_IN_FUNCTION = {
      .error_name            = "OB_ERR_NO_RETURN_IN_FUNCTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_NORETURN,
      .sqlstate              = "42000",
      .str_error             = "No Return found in FUNCTION '%.*s'",
      .str_user_error        = "No Return found in FUNCTION '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9575, No Return found in FUNCTION '%.*s'",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9575, No Return found in FUNCTION '%.*s'"
};
static const _error _error_OB_ERR_STMT_NOT_ALLOW_IN_MYSQL_FUNC_TRIGGER = {
      .error_name            = "OB_ERR_STMT_NOT_ALLOW_IN_MYSQL_FUNC_TRIGGER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG,
      .sqlstate              = "HY000",
      .str_error             = "'%.*s' is not allowed in stored function or trigger.",
      .str_user_error        = "'%.*s' is not allowed in stored function or trigger.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9576, '%.*s' is not allowed in stored function or trigger.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9576, '%.*s' is not allowed in stored function or trigger."
};
static const _error _error_OB_ERR_TOO_LONG_STRING_TYPE = {
      .error_name            = "OB_ERR_TOO_LONG_STRING_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_BIG_FIELDLENGTH,
      .sqlstate              = "42000",
      .str_error             = "Column length too big for column '%.*s' (max = %d); use BLOB or TEXT instead",
      .str_user_error        = "Column length too big for column '%.*s' (max = %d); use BLOB or TEXT instead",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9577, Column length too big for column '%.*s' (max = %d); use BLOB or TEXT instead",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9577, Column length too big for column '%.*s' (max = %d); use BLOB or TEXT instead"
};
static const _error _error_OB_ERR_WIDTH_OUT_OF_RANGE = {
      .error_name            = "OB_ERR_WIDTH_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TOO_BIG_DISPLAYWIDTH,
      .sqlstate              = "42000",
      .str_error             = "Display width out of range for column '%.*s' (max = %d)",
      .str_user_error        = "Display width out of range for column '%.*s' (max = %d)",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9578, Display width out of range for column '%.*s' (max = %d)",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9578, Display width out of range for column '%.*s' (max = %d)"
};
static const _error _error_OB_ERR_REDEFINE_LABEL = {
      .error_name            = "OB_ERR_REDEFINE_LABEL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_LABEL_REDEFINE,
      .sqlstate              = "42000",
      .str_error             = "Redefining label '%.*s'",
      .str_user_error        = "Redefining label '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9579, Redefining label '%.*s'",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9579, Redefining label '%.*s'"
};
static const _error _error_OB_ERR_STMT_NOT_ALLOW_IN_MYSQL_PROCEDRUE = {
      .error_name            = "OB_ERR_STMT_NOT_ALLOW_IN_MYSQL_PROCEDRUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_BADSTATEMENT,
      .sqlstate              = "HY000",
      .str_error             = "'%.*s' is not allowed in stored procedure.",
      .str_user_error        = "'%.*s' is not allowed in stored procedure.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9580, '%.*s' is not allowed in stored procedure.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9580, '%.*s' is not allowed in stored procedure."
};
static const _error _error_OB_ERR_TRIGGER_NOT_SUPPORT = {
      .error_name            = "OB_ERR_TRIGGER_NOT_SUPPORT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NOT_SUPPORTED_YET,
      .sqlstate              = "42000",
      .str_error             = "This version of OceanBase doesn't yet support 'multiple triggers with the same action time and event for one table'",
      .str_user_error        = "This version of OceanBase doesn't yet support 'multiple triggers with the same action time and event for one table'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9581, This version of OceanBase doesn't yet support 'multiple triggers with the same action time and event for one table'",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9581, This version of OceanBase doesn't yet support 'multiple triggers with the same action time and event for one table'"
};
static const _error _error_OB_ERR_TRIGGER_IN_WRONG_SCHEMA = {
      .error_name            = "OB_ERR_TRIGGER_IN_WRONG_SCHEMA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRG_IN_WRONG_SCHEMA,
      .sqlstate              = "HY000",
      .str_error             = "Trigger in wrong schema",
      .str_user_error        = "Trigger in wrong schema",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9582, Trigger in wrong schema",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9582, Trigger in wrong schema"
};
static const _error _error_OB_ERR_UNKNOWN_EXCEPTION = {
      .error_name            = "OB_ERR_UNKNOWN_EXCEPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unknown exception name 'string' in PRAGMA EXCEPTION_INIT",
      .str_user_error        = "unknown exception name '%.*s' in PRAGMA EXCEPTION_INIT",
      .oracle_errno          = 109,
      .oracle_str_error      = "PLS-00109: unknown exception name 'string' in PRAGMA EXCEPTION_INIT",
      .oracle_str_user_error = "PLS-00109: unknown exception name '%.*s' in PRAGMA EXCEPTION_INIT"
};
static const _error _error_OB_ERR_TRIGGER_CANT_CHANGE_ROW = {
      .error_name            = "OB_ERR_TRIGGER_CANT_CHANGE_ROW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRG_CANT_CHANGE_ROW,
      .sqlstate              = "HY000",
      .str_error             = "Updating of NEW/OLD row is not allowed in this trigger",
      .str_user_error        = "Updating of %s row is not allowed in %strigger",
      .oracle_errno          = 4084,
      .oracle_str_error      = "ORA-04084: cannot change NEW values for this trigger type",
      .oracle_str_user_error = "ORA-04084: cannot change NEW values for this trigger type"
};
static const _error _error_OB_ERR_ITEM_NOT_IN_BODY = {
      .error_name            = "OB_ERR_ITEM_NOT_IN_BODY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "subprogram or cursor 'string' is declared in a package specification and must be defined in the package body",
      .str_user_error        = "subprogram or cursor '%.*s' is declared in a package specification and must be defined in the package body",
      .oracle_errno          = 323,
      .oracle_str_error      = "PLS-00323: subprogram or cursor 'string' is declared in a package specification and must be defined in the package body",
      .oracle_str_user_error = "PLS-00323: subprogram or cursor '%.*s' is declared in a package specification and must be defined in the package body"
};
static const _error _error_OB_ERR_WRONG_ROWTYPE = {
      .error_name            = "OB_ERR_WRONG_ROWTYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "with %%ROWTYPE attribute, 'string' must name a table, cursor or cursor-variable",
      .str_user_error        = "with %%ROWTYPE attribute, '%.*s' must name a table, cursor or cursor-variable",
      .oracle_errno          = 310,
      .oracle_str_error      = "PLS-00310: with %%ROWTYPE attribute, 'string' must name a table, cursor or cursor-variable",
      .oracle_str_user_error = "PLS-00310: with %%ROWTYPE attribute, '%.*s' must name a table, cursor or cursor-variable"
};
static const _error _error_OB_ERR_ROUTINE_NOT_DEFINE = {
      .error_name            = "OB_ERR_ROUTINE_NOT_DEFINE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "A subprogram body must be defined for the forward declaration of string.",
      .str_user_error        = "A subprogram body must be defined for the forward declaration of %.*s.",
      .oracle_errno          = 328,
      .oracle_str_error      = "PLS-00328: A subprogram body must be defined for the forward declaration of string.",
      .oracle_str_user_error = "PLS-00328: A subprogram body must be defined for the forward declaration of %.*s."
};
static const _error _error_OB_ERR_DUP_NAME_IN_CURSOR = {
      .error_name            = "OB_ERR_DUP_NAME_IN_CURSOR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "alias required in SELECT list of cursor to avoid duplicate column names",
      .str_user_error        = "alias required in SELECT list of cursor to avoid duplicate column names",
      .oracle_errno          = 402,
      .oracle_str_error      = "PLS-00402: alias required in SELECT list of cursor to avoid duplicate column names",
      .oracle_str_user_error = "PLS-00402: alias required in SELECT list of cursor to avoid duplicate column names"
};
static const _error _error_OB_ERR_LOCAL_COLL_IN_SQL = {
      .error_name            = "OB_ERR_LOCAL_COLL_IN_SQL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "local collection types not allowed in SQL statements",
      .str_user_error        = "local collection types not allowed in SQL statements",
      .oracle_errno          = 642,
      .oracle_str_error      = "PLS-00642: local collection types not allowed in SQL statements",
      .oracle_str_user_error = "PLS-00642: local collection types not allowed in SQL statements"
};
static const _error _error_OB_ERR_TYPE_MISMATCH_IN_FETCH = {
      .error_name            = "OB_ERR_TYPE_MISMATCH_IN_FETCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "type mismatch found at 'string' between FETCH cursor and INTO variables",
      .str_user_error        = "type mismatch found at '%.*s' between FETCH cursor and INTO variables",
      .oracle_errno          = 386,
      .oracle_str_error      = "PLS-00386: type mismatch found at 'string' between FETCH cursor and INTO variables",
      .oracle_str_user_error = "PLS-00386: type mismatch found at '%.*s' between FETCH cursor and INTO variables"
};
static const _error _error_OB_ERR_OTHERS_MUST_LAST = {
      .error_name            = "OB_ERR_OTHERS_MUST_LAST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "OTHERS handler must be last among the exception handlers of a block",
      .str_user_error        = "OTHERS handler must be last among the exception handlers of a block",
      .oracle_errno          = 370,
      .oracle_str_error      = "PLS-00370: OTHERS handler must be last among the exception handlers of a block",
      .oracle_str_user_error = "PLS-00370: OTHERS handler must be last among the exception handlers of a block"
};
static const _error _error_OB_ERR_RAISE_NOT_IN_HANDLER = {
      .error_name            = "OB_ERR_RAISE_NOT_IN_HANDLER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "a RAISE statement with no exception name must be inside an exception handler",
      .str_user_error        = "a RAISE statement with no exception name must be inside an exception handler",
      .oracle_errno          = 367,
      .oracle_str_error      = "PLS-00367: a RAISE statement with no exception name must be inside an exception handler",
      .oracle_str_user_error = "PLS-00367: a RAISE statement with no exception name must be inside an exception handler"
};
static const _error _error_OB_ERR_INVALID_CURSOR_RETURN_TYPE = {
      .error_name            = "OB_ERR_INVALID_CURSOR_RETURN_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid cursor return type; 'string' must be a record type",
      .str_user_error        = "invalid cursor return type; '%.*s' must be a record type",
      .oracle_errno          = 362,
      .oracle_str_error      = "PLS-00362: invalid cursor return type; 'string' must be a record type",
      .oracle_str_user_error = "PLS-00362: invalid cursor return type; '%.*s' must be a record type"
};
static const _error _error_OB_ERR_IN_CURSOR_OPEND = {
      .error_name            = "OB_ERR_IN_CURSOR_OPEND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "IN cursor 'string' cannot be OPEN'ed",
      .str_user_error        = "IN cursor '%.*s' cannot be OPEN'ed",
      .oracle_errno          = 361,
      .oracle_str_error      = "PLS-00361: IN cursor 'string' cannot be OPEN'ed",
      .oracle_str_user_error = "PLS-00361: IN cursor '%.*s' cannot be OPEN'ed"
};
static const _error _error_OB_ERR_CURSOR_NO_RETURN_TYPE = {
      .error_name            = "OB_ERR_CURSOR_NO_RETURN_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cursor declaration without body needs return type",
      .str_user_error        = "cursor declaration without body needs return type",
      .oracle_errno          = 360,
      .oracle_str_error      = "PLS-00360: cursor declaration without body needs return type",
      .oracle_str_user_error = "PLS-00360: cursor declaration without body needs return type"
};
static const _error _error_OB_ERR_NO_CHOICES = {
      .error_name            = "OB_ERR_NO_CHOICES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no choices may appear with choice OTHERS in an exception handler",
      .str_user_error        = "no choices may appear with choice OTHERS in an exception handler",
      .oracle_errno          = 369,
      .oracle_str_error      = "PLS-00369: no choices may appear with choice OTHERS in an exception handler",
      .oracle_str_user_error = "PLS-00369: no choices may appear with choice OTHERS in an exception handler"
};
static const _error _error_OB_ERR_TYPE_DECL_MALFORMED = {
      .error_name            = "OB_ERR_TYPE_DECL_MALFORMED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the declaration of the type of this expression is incomplete or malformed",
      .str_user_error        = "the declaration of the type of this expression is incomplete or malformed",
      .oracle_errno          = 320,
      .oracle_str_error      = "PLS-00320: the declaration of the type of this expression is incomplete or malformed",
      .oracle_str_user_error = "PLS-00320: the declaration of the type of this expression is incomplete or malformed"
};
static const _error _error_OB_ERR_IN_FORMAL_NOT_DENOTABLE = {
      .error_name            = "OB_ERR_IN_FORMAL_NOT_DENOTABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "subprogram 'in' formal string is not yet denotable",
      .str_user_error        = "subprogram 'in' formal %.*s is not yet denotable",
      .oracle_errno          = 227,
      .oracle_str_error      = "PLS-00227: subprogram 'in' formal string is not yet denotable",
      .oracle_str_user_error = "PLS-00227: subprogram 'in' formal %.*s is not yet denotable"
};
static const _error _error_OB_ERR_OUT_PARAM_HAS_DEFAULT = {
      .error_name            = "OB_ERR_OUT_PARAM_HAS_DEFAULT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "OUT and IN OUT formal parameters may not have default expressions",
      .str_user_error        = "OUT and IN OUT formal parameters may not have default expressions",
      .oracle_errno          = 230,
      .oracle_str_error      = "PLS-00230: OUT and IN OUT formal parameters may not have default expressions",
      .oracle_str_user_error = "PLS-00230: OUT and IN OUT formal parameters may not have default expressions"
};
static const _error _error_OB_ERR_ONLY_FUNC_CAN_PIPELINED = {
      .error_name            = "OB_ERR_ONLY_FUNC_CAN_PIPELINED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "only functions can be declared as PIPELINED",
      .str_user_error        = "only functions can be declared as PIPELINED",
      .oracle_errno          = 655,
      .oracle_str_error      = "PLS-00655: only functions can be declared as PIPELINED",
      .oracle_str_user_error = "PLS-00655: only functions can be declared as PIPELINED"
};
static const _error _error_OB_ERR_PIPE_RETURN_NOT_COLL = {
      .error_name            = "OB_ERR_PIPE_RETURN_NOT_COLL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "pipelined functions must have a supported collection return type",
      .str_user_error        = "pipelined functions must have a supported collection return type",
      .oracle_errno          = 630,
      .oracle_str_error      = "PLS-00630: pipelined functions must have a supported collection return type",
      .oracle_str_user_error = "PLS-00630: pipelined functions must have a supported collection return type"
};
static const _error _error_OB_ERR_MISMATCH_SUBPROGRAM = {
      .error_name            = "OB_ERR_MISMATCH_SUBPROGRAM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "mismatch between string on a subprogram specification and body",
      .str_user_error        = "mismatch between string on a subprogram specification and body",
      .oracle_errno          = 263,
      .oracle_str_error      = "PLS-00263: mismatch between string on a subprogram specification and body",
      .oracle_str_user_error = "PLS-00263: mismatch between string on a subprogram specification and body"
};
static const _error _error_OB_ERR_PARAM_IN_PACKAGE_SPEC = {
      .error_name            = "OB_ERR_PARAM_IN_PACKAGE_SPEC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Pragma string must be declared in a package specification",
      .str_user_error        = "Pragma %.*s must be declared in a package specification",
      .oracle_errno          = 708,
      .oracle_str_error      = "PLS-00708: Pragma string must be declared in a package specification",
      .oracle_str_user_error = "PLS-00708: Pragma %.*s must be declared in a package specification"
};
static const _error _error_OB_ERR_NUMERIC_LITERAL_REQUIRED = {
      .error_name            = "OB_ERR_NUMERIC_LITERAL_REQUIRED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "numeric literal required",
      .str_user_error        = "numeric literal required",
      .oracle_errno          = 491,
      .oracle_str_error      = "PLS-00491: numeric literal required",
      .oracle_str_user_error = "PLS-00491: numeric literal required"
};
static const _error _error_OB_ERR_NON_INT_LITERAL = {
      .error_name            = "OB_ERR_NON_INT_LITERAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "non-integral numeric literal string is inappropriate in this context",
      .str_user_error        = "non-integral numeric literal %.*s is inappropriate in this context",
      .oracle_errno          = 325,
      .oracle_str_error      = "PLS-00325: non-integral numeric literal string is inappropriate in this context",
      .oracle_str_user_error = "PLS-00325: non-integral numeric literal %.*s is inappropriate in this context"
};
static const _error _error_OB_ERR_IMPROPER_CONSTRAINT_FORM = {
      .error_name            = "OB_ERR_IMPROPER_CONSTRAINT_FORM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "improper constraint form used",
      .str_user_error        = "improper constraint form used",
      .oracle_errno          = 572,
      .oracle_str_error      = "PLS-00572: improper constraint form used",
      .oracle_str_user_error = "PLS-00572: improper constraint form used"
};
static const _error _error_OB_ERR_TYPE_CANT_CONSTRAINED = {
      .error_name            = "OB_ERR_TYPE_CANT_CONSTRAINED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "type name 'string' cannot be constrained",
      .str_user_error        = "type name '%.*s' cannot be constrained",
      .oracle_errno          = 566,
      .oracle_str_error      = "PLS-00566: type name 'string' cannot be constrained",
      .oracle_str_user_error = "PLS-00566: type name '%.*s' cannot be constrained"
};
static const _error _error_OB_ERR_ANY_CS_NOT_ALLOWED = {
      .error_name            = "OB_ERR_ANY_CS_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "character set ANY_CS is only allowed on a subprogram parameter",
      .str_user_error        = "character set ANY_CS is only allowed on a subprogram parameter",
      .oracle_errno          = 551,
      .oracle_str_error      = "PLS-00551: character set ANY_CS is only allowed on a subprogram parameter",
      .oracle_str_user_error = "PLS-00551: character set ANY_CS is only allowed on a subprogram parameter"
};
static const _error _error_OB_ERR_SCHEMA_TYPE_ILLEGAL = {
      .error_name            = "OB_ERR_SCHEMA_TYPE_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "schema-level type has illegal reference to string",
      .str_user_error        = "schema-level type has illegal reference to %.*s",
      .oracle_errno          = 329,
      .oracle_str_error      = "PLS-00329: schema-level type has illegal reference to string",
      .oracle_str_user_error = "PLS-00329: schema-level type has illegal reference to %.*s"
};
static const _error _error_OB_ERR_UNSUPPORTED_TABLE_INDEX_TYPE = {
      .error_name            = "OB_ERR_UNSUPPORTED_TABLE_INDEX_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Implementation restriction: unsupported table index type",
      .str_user_error        = "Implementation restriction: unsupported table index type",
      .oracle_errno          = 315,
      .oracle_str_error      = "PLS-00315: Implementation restriction: unsupported table index type",
      .oracle_str_user_error = "PLS-00315: Implementation restriction: unsupported table index type"
};
static const _error _error_OB_ERR_ARRAY_MUST_HAVE_POSITIVE_LIMIT = {
      .error_name            = "OB_ERR_ARRAY_MUST_HAVE_POSITIVE_LIMIT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "A VARRAY must have a positive limit",
      .str_user_error        = "A VARRAY must have a positive limit",
      .oracle_errno          = 537,
      .oracle_str_error      = "PLS-00537: A VARRAY must have a positive limit",
      .oracle_str_user_error = "PLS-00537: A VARRAY must have a positive limit"
};
static const _error _error_OB_ERR_FORALL_ITER_NOT_ALLOWED = {
      .error_name            = "OB_ERR_FORALL_ITER_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "FORALL iteration variable string is not allowed in this context",
      .str_user_error        = "FORALL iteration variable %.*s is not allowed in this context",
      .oracle_errno          = 430,
      .oracle_str_error      = "PLS-00430: FORALL iteration variable string is not allowed in this context",
      .oracle_str_user_error = "PLS-00430: FORALL iteration variable %.*s is not allowed in this context"
};
static const _error _error_OB_ERR_BULK_IN_BIND = {
      .error_name            = "OB_ERR_BULK_IN_BIND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "references to fields of BULK In-BIND table of records or objects must have the form A(I).F",
      .str_user_error        = "references to fields of BULK In-BIND table of records or objects must have the form A(I).F",
      .oracle_errno          = 674,
      .oracle_str_error      = "PLS-00674: references to fields of BULK In-BIND table of records or objects must have the form A(I).F",
      .oracle_str_user_error = "PLS-00674: references to fields of BULK In-BIND table of records or objects must have the form A(I).F"
};
static const _error _error_OB_ERR_FORALL_BULK_TOGETHER = {
      .error_name            = "OB_ERR_FORALL_BULK_TOGETHER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "implementation restriction: cannot use FORALL and BULK COLLECT INTO together in SELECT statements",
      .str_user_error        = "implementation restriction: cannot use FORALL and BULK COLLECT INTO together in SELECT statements",
      .oracle_errno          = 432,
      .oracle_str_error      = "PLS-00432: implementation restriction: cannot use FORALL and BULK COLLECT INTO together in SELECT statements",
      .oracle_str_user_error = "PLS-00432: implementation restriction: cannot use FORALL and BULK COLLECT INTO together in SELECT statements"
};
static const _error _error_OB_ERR_FORALL_DML_WITHOUT_BULK = {
      .error_name            = "OB_ERR_FORALL_DML_WITHOUT_BULK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "DML statement without BULK In-BIND cannot be used inside FORALL",
      .str_user_error        = "DML statement without BULK In-BIND cannot be used inside FORALL",
      .oracle_errno          = 435,
      .oracle_str_error      = "PLS-00435: DML statement without BULK In-BIND cannot be used inside FORALL",
      .oracle_str_user_error = "PLS-00435: DML statement without BULK In-BIND cannot be used inside FORALL"
};
static const _error _error_OB_ERR_SHOULD_COLLECTION_TYPE = {
      .error_name            = "OB_ERR_SHOULD_COLLECTION_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Type of expression should be a collection type",
      .str_user_error        = "Type of expression should be a collection type",
      .oracle_errno          = 668,
      .oracle_str_error      = "PLS-00668: Type of expression should be a collection type",
      .oracle_str_user_error = "PLS-00668: Type of expression should be a collection type"
};
static const _error _error_OB_ERR_ASSOC_ELEM_TYPE = {
      .error_name            = "OB_ERR_ASSOC_ELEM_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Element type of associative array should be pls_integer or binary_integer",
      .str_user_error        = "Element type of associative array should be pls_integer or binary_integer",
      .oracle_errno          = 667,
      .oracle_str_error      = "PLS-00667: Element type of associative array should be pls_integer or binary_integer",
      .oracle_str_user_error = "PLS-00667: Element type of associative array should be pls_integer or binary_integer"
};
static const _error _error_OB_ERR_INTO_CLAUSE_EXPECTED = {
      .error_name            = "OB_ERR_INTO_CLAUSE_EXPECTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "an INTO clause is expected in this SELECT statement",
      .str_user_error        = "an INTO clause is expected in this SELECT statement",
      .oracle_errno          = 428,
      .oracle_str_error      = "PLS-00428: an INTO clause is expected in this SELECT statement",
      .oracle_str_user_error = "PLS-00428: an INTO clause is expected in this SELECT statement"
};
static const _error _error_OB_ERR_SUBPROGRAM_VIOLATES_PRAGMA = {
      .error_name            = "OB_ERR_SUBPROGRAM_VIOLATES_PRAGMA",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Subprogram 'string' violates its associated pragma",
      .str_user_error        = "Subprogram '%.*s' violates its associated pragma",
      .oracle_errno          = 452,
      .oracle_str_error      = "PLS-00452: Subprogram 'string' violates its associated pragma",
      .oracle_str_user_error = "PLS-00452: Subprogram '%.*s' violates its associated pragma"
};
static const _error _error_OB_ERR_EXPR_SQL_TYPE = {
      .error_name            = "OB_ERR_EXPR_SQL_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "expressions have to be of SQL types",
      .str_user_error        = "expressions have to be of SQL types",
      .oracle_errno          = 457,
      .oracle_str_error      = "PLS-00457: expressions have to be of SQL types",
      .oracle_str_user_error = "PLS-00457: expressions have to be of SQL types"
};
static const _error _error_OB_ERR_PRAGMA_DECL_TWICE = {
      .error_name            = "OB_ERR_PRAGMA_DECL_TWICE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "PRAGMA string cannot be declared twice",
      .str_user_error        = "PRAGMA %.*s cannot be declared twice",
      .oracle_errno          = 711,
      .oracle_str_error      = "PLS-00711: PRAGMA string cannot be declared twice",
      .oracle_str_user_error = "PLS-00711: PRAGMA %.*s cannot be declared twice"
};
static const _error _error_OB_ERR_PRAGMA_FOLLOW_DECL = {
      .error_name            = "OB_ERR_PRAGMA_FOLLOW_DECL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "this PRAGMA must follow the declaration of 'string'",
      .str_user_error        = "this PRAGMA must follow the declaration of '%.*s'",
      .oracle_errno          = 115,
      .oracle_str_error      = "PLS-00115: this PRAGMA must follow the declaration of 'string'",
      .oracle_str_user_error = "PLS-00115: this PRAGMA must follow the declaration of '%.*s'"
};
static const _error _error_OB_ERR_PIPE_STMT_IN_NON_PIPELINED_FUNC = {
      .error_name            = "OB_ERR_PIPE_STMT_IN_NON_PIPELINED_FUNC",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "PIPE statement cannot be used in non-pipelined functions",
      .str_user_error        = "PIPE statement cannot be used in non-pipelined functions",
      .oracle_errno          = 629,
      .oracle_str_error      = "PLS-00629: PIPE statement cannot be used in non-pipelined functions",
      .oracle_str_user_error = "PLS-00629: PIPE statement cannot be used in non-pipelined functions"
};
static const _error _error_OB_ERR_IMPL_RESTRICTION = {
      .error_name            = "OB_ERR_IMPL_RESTRICTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "implementation restriction (may be temporary)",
      .str_user_error        = "implementation restriction (may be temporary) %s",
      .oracle_errno          = 999,
      .oracle_str_error      = "PLS-00999: implementation restriction (may be temporary)",
      .oracle_str_user_error = "PLS-00999: implementation restriction (may be temporary) %s"
};
static const _error _error_OB_ERR_INSUFFICIENT_PRIVILEGE = {
      .error_name            = "OB_ERR_INSUFFICIENT_PRIVILEGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "insufficient privilege to access object string",
      .str_user_error        = "insufficient privilege to access object string",
      .oracle_errno          = 904,
      .oracle_str_error      = "PLS-00904: insufficient privilege to access object string",
      .oracle_str_user_error = "PLS-00904: insufficient privilege to access object string"
};
static const _error _error_OB_ERR_ILLEGAL_OPTION = {
      .error_name            = "OB_ERR_ILLEGAL_OPTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "illegal option for subprogram string",
      .str_user_error        = "illegal option for subprogram %.*s",
      .oracle_errno          = 712,
      .oracle_str_error      = "PLS-00712: illegal option for subprogram string",
      .oracle_str_user_error = "PLS-00712: illegal option for subprogram %.*s"
};
static const _error _error_OB_ERR_NO_FUNCTION_EXIST = {
      .error_name            = "OB_ERR_NO_FUNCTION_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no function with name 'string' exists in this scope",
      .str_user_error        = "no function with name '%.*s' exists in this scope",
      .oracle_errno          = 222,
      .oracle_str_error      = "PLS-00222: no function with name 'string' exists in this scope",
      .oracle_str_user_error = "PLS-00222: no function with name '%.*s' exists in this scope"
};
static const _error _error_OB_ERR_OUT_OF_SCOPE = {
      .error_name            = "OB_ERR_OUT_OF_SCOPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "subprogram or cursor 'string' reference is out of scope",
      .str_user_error        = "subprogram or cursor '%.*s' reference is out of scope",
      .oracle_errno          = 225,
      .oracle_str_error      = "PLS-00225: subprogram or cursor 'string' reference is out of scope",
      .oracle_str_user_error = "PLS-00225: subprogram or cursor '%.*s' reference is out of scope"
};
static const _error _error_OB_ERR_ILLEGAL_ERROR_NUM = {
      .error_name            = "OB_ERR_ILLEGAL_ERROR_NUM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "illegal ORACLE error number string for PRAGMA EXCEPTION_INIT",
      .str_user_error        = "illegal ORACLE error number %.*s for PRAGMA EXCEPTION_INIT",
      .oracle_errno          = 701,
      .oracle_str_error      = "PLS-00701: illegal ORACLE error number string for PRAGMA EXCEPTION_INIT",
      .oracle_str_user_error = "PLS-00701: illegal ORACLE error number %.*s for PRAGMA EXCEPTION_INIT"
};
static const _error _error_OB_ERR_DEFAULT_NOT_MATCH = {
      .error_name            = "OB_ERR_DEFAULT_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "default value of parameter 'string' in body must match that of spec",
      .str_user_error        = "default value of parameter '%.*s' in body must match that of spec",
      .oracle_errno          = 593,
      .oracle_str_error      = "PLS-00593: default value of parameter 'string' in body must match that of spec",
      .oracle_str_user_error = "PLS-00593: default value of parameter '%.*s' in body must match that of spec"
};
static const _error _error_OB_ERR_TABLE_SINGLE_INDEX = {
      .error_name            = "OB_ERR_TABLE_SINGLE_INDEX",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "PL/SQL TABLEs must use a single index",
      .str_user_error        = "PL/SQL TABLEs must use a single index",
      .oracle_errno          = 316,
      .oracle_str_error      = "PLS-00316: PL/SQL TABLEs must use a single index",
      .oracle_str_user_error = "PLS-00316: PL/SQL TABLEs must use a single index"
};
static const _error _error_OB_ERR_PRAGMA_DECL = {
      .error_name            = "OB_ERR_PRAGMA_DECL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "pragma string must be declared in package specification and body",
      .str_user_error        = "pragma %.*s must be declared in package specification and body",
      .oracle_errno          = 709,
      .oracle_str_error      = "PLS-00709: pragma string must be declared in package specification and body",
      .oracle_str_user_error = "PLS-00709: pragma %.*s must be declared in package specification and body"
};
static const _error _error_OB_ERR_INCORRECT_ARGUMENTS = {
      .error_name            = "OB_ERR_INCORRECT_ARGUMENTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "incorrect number of arguments for aggregate function",
      .str_user_error        = "incorrect number of arguments for aggregate function",
      .oracle_errno          = 652,
      .oracle_str_error      = "PLS-00652: incorrect number of arguments for aggregate function",
      .oracle_str_user_error = "PLS-00652: incorrect number of arguments for aggregate function"
};
static const _error _error_OB_ERR_RETURN_VALUE_REQUIRED = {
      .error_name            = "OB_ERR_RETURN_VALUE_REQUIRED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "RETURN <value> statement required for this return from function",
      .str_user_error        = "RETURN <value> statement required for this return from function",
      .oracle_errno          = 503,
      .oracle_str_error      = "PLS-00503: RETURN value statement required for this return from function",
      .oracle_str_user_error = "PLS-00503: RETURN value statement required for this return from function"
};
static const _error _error_OB_ERR_RETURN_EXPR_ILLEGAL = {
      .error_name            = "OB_ERR_RETURN_EXPR_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "RETURN statement in a pipelined function cannot contain an expression",
      .str_user_error        = "RETURN statement in a pipelined function cannot contain an expression",
      .oracle_errno          = 633,
      .oracle_str_error      = "PLS-00633: RETURN statement in a pipelined function cannot contain an expression",
      .oracle_str_user_error = "PLS-00633: RETURN statement in a pipelined function cannot contain an expression"
};
static const _error _error_OB_ERR_LIMIT_ILLEGAL = {
      .error_name            = "OB_ERR_LIMIT_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "A LIMIT clause must be used within a BULK FETCH",
      .str_user_error        = "A LIMIT clause must be used within a BULK FETCH",
      .oracle_errno          = 439,
      .oracle_str_error      = "PLS-00439: A LIMIT clause must be used within a BULK FETCH",
      .oracle_str_user_error = "PLS-00439: A LIMIT clause must be used within a BULK FETCH"
};
static const _error _error_OB_ERR_INTO_EXPR_ILLEGAL = {
      .error_name            = "OB_ERR_INTO_EXPR_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "expression 'string' in the INTO list is of wrong type",
      .str_user_error        = "expression '%.*s' in the INTO list is of wrong type",
      .oracle_errno          = 597,
      .oracle_str_error      = "PLS-00597: expression 'string' in the INTO list is of wrong type",
      .oracle_str_user_error = "PLS-00597: expression '%.*s' in the INTO list is of wrong type"
};
static const _error _error_OB_ERR_BULK_SQL_RESTRICTION = {
      .error_name            = "OB_ERR_BULK_SQL_RESTRICTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Implementation restriction: bulk SQL with associative arrays with VARCHAR2 key is not supported.",
      .str_user_error        = "Implementation restriction: bulk SQL with associative arrays with VARCHAR2 key is not supported.",
      .oracle_errno          = 657,
      .oracle_str_error      = "PLS-00657: Implementation restriction: bulk SQL with associative arrays with VARCHAR2 key is not supported.",
      .oracle_str_user_error = "PLS-00657: Implementation restriction: bulk SQL with associative arrays with VARCHAR2 key is not supported."
};
static const _error _error_OB_ERR_MIX_SINGLE_MULTI = {
      .error_name            = "OB_ERR_MIX_SINGLE_MULTI",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot mix between single row and multi-row (BULK) in INTO list",
      .str_user_error        = "cannot mix between single row and multi-row (BULK) in INTO list",
      .oracle_errno          = 497,
      .oracle_str_error      = "PLS-00497: cannot mix between single row and multi-row (BULK) in INTO list",
      .oracle_str_user_error = "PLS-00497: cannot mix between single row and multi-row (BULK) in INTO list"
};
static const _error _error_OB_ERR_TRIGGER_NO_SUCH_ROW = {
      .error_name            = "OB_ERR_TRIGGER_NO_SUCH_ROW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_TRG_NO_SUCH_ROW_IN_TRG,
      .sqlstate              = "HY000",
      .str_error             = "There is no NEW/OLD row in on this type trigger",
      .str_user_error        = "There is no %s row in on %s trigger",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9640, There is no NEW/OLD row in on this type trigger",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9640, There is no %s row in on %s trigger"
};
static const _error _error_OB_ERR_SET_USAGE = {
      .error_name            = "OB_ERR_SET_USAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_USAGE,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect usage of UNION and INTO",
      .str_user_error        = "Incorrect usage of UNION and INTO",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9641, Incorrect usage of UNION and INTO",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9641, Incorrect usage of UNION and INTO"
};
static const _error _error_OB_ERR_MODIFIER_CONFLICTS = {
      .error_name            = "OB_ERR_MODIFIER_CONFLICTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "modifier 'string' conflicts with prior 'string' specification",
      .str_user_error        = "modifier '%s' conflicts with prior '%s' specification",
      .oracle_errno          = 169,
      .oracle_str_error      = "PLS-00169: modifier 'string' conflicts with prior 'string' specification",
      .oracle_str_user_error = "PLS-00169: modifier '%s' conflicts with prior '%s' specification"
};
static const _error _error_OB_ERR_DUPLICATE_MODIFIER = {
      .error_name            = "OB_ERR_DUPLICATE_MODIFIER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate modifier specification 'string'",
      .str_user_error        = "duplicate modifier specification '%s'",
      .oracle_errno          = 168,
      .oracle_str_error      = "PLS-00168: duplicate modifier specification 'string'",
      .oracle_str_user_error = "PLS-00168: duplicate modifier specification '%s'"
};
static const _error _error_OB_ERR_STR_LITERAL_TOO_LONG = {
      .error_name            = "OB_ERR_STR_LITERAL_TOO_LONG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "string literal too long",
      .str_user_error        = "string literal too long",
      .oracle_errno          = 172,
      .oracle_str_error      = "PLS-00172: string literal too long",
      .oracle_str_user_error = "PLS-00172: string literal too long"
};
static const _error _error_OB_ERR_SELF_PARAM_NOT_INOUT = {
      .error_name            = "OB_ERR_SELF_PARAM_NOT_INOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "SELF parameter of constructor method must be IN OUT",
      .str_user_error        = "SELF parameter of constructor method must be IN OUT",
      .oracle_errno          = 660,
      .oracle_str_error      = "PLS-00660: SELF parameter of constructor method must be IN OUT",
      .oracle_str_user_error = "PLS-00660: SELF parameter of constructor method must be IN OUT"
};
static const _error _error_OB_ERR_CONSTRUCT_MUST_RETURN_SELF = {
      .error_name            = "OB_ERR_CONSTRUCT_MUST_RETURN_SELF",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "constructor method must return SELF AS RESULT",
      .str_user_error        = "constructor method must return SELF AS RESULT",
      .oracle_errno          = 659,
      .oracle_str_error      = "PLS-00659: constructor method must return SELF AS RESULT",
      .oracle_str_user_error = "PLS-00659: constructor method must return SELF AS RESULT"
};
static const _error _error_OB_ERR_FIRST_PARAM_MUST_NOT_NULL = {
      .error_name            = "OB_ERR_FIRST_PARAM_MUST_NOT_NULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the first operand in the NULLIF expression must not be NULL",
      .str_user_error        = "the first operand in the NULLIF expression must not be NULL",
      .oracle_errno          = 619,
      .oracle_str_error      = "PLS-00619: the first operand in the NULLIF expression must not be NULL",
      .oracle_str_user_error = "PLS-00619: the first operand in the NULLIF expression must not be NULL"
};
static const _error _error_OB_ERR_COALESCE_AT_LEAST_ONE_NOT_NULL = {
      .error_name            = "OB_ERR_COALESCE_AT_LEAST_ONE_NOT_NULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "at least one operand in the COALESCE expression must not be NULL",
      .str_user_error        = "at least one operand in the COALESCE expression must not be NULL",
      .oracle_errno          = 621,
      .oracle_str_error      = "PLS-00621: at least one operand in the COALESCE expression must not be NULL",
      .oracle_str_user_error = "PLS-00621: at least one operand in the COALESCE expression must not be NULL"
};
static const _error _error_OB_ERR_STATIC_METHOD_HAS_SELF = {
      .error_name            = "OB_ERR_STATIC_METHOD_HAS_SELF",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "a static method cannot declare a parameter named SELF",
      .str_user_error        = "a static method cannot declare a parameter named SELF",
      .oracle_errno          = 586,
      .oracle_str_error      = "PLS-00586: a static method cannot declare a parameter named SELF",
      .oracle_str_user_error = "PLS-00586: a static method cannot declare a parameter named SELF"
};
static const _error _error_OB_ERR_NO_ATTR_FOUND = {
      .error_name            = "OB_ERR_NO_ATTR_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no attributes found in object type 'string'",
      .str_user_error        = "no attributes found in object type '%.*s'",
      .oracle_errno          = 589,
      .oracle_str_error      = "PLS-00589: no attributes found in object type 'string'",
      .oracle_str_user_error = "PLS-00589: no attributes found in object type '%.*s'"
};
static const _error _error_OB_ERR_ILLEGAL_TYPE_FOR_OBJECT = {
      .error_name            = "OB_ERR_ILLEGAL_TYPE_FOR_OBJECT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Illegal type used for object type attribute: 'string'.",
      .str_user_error        = "Illegal type used for object type attribute: '%.*s'.",
      .oracle_errno          = 530,
      .oracle_str_error      = "PLS-00530: Illegal type used for object type attribute: 'string'.",
      .oracle_str_user_error = "PLS-00530: Illegal type used for object type attribute: '%.*s'."
};
static const _error _error_OB_ERR_UNSUPPORTED_TYPE = {
      .error_name            = "OB_ERR_UNSUPPORTED_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Unsupported type in a VARRAY or TABLE type: 'string'.",
      .str_user_error        = "Unsupported type in a VARRAY or TABLE type: '%.*s'.",
      .oracle_errno          = 531,
      .oracle_str_error      = "PLS-00531: Unsupported type in a VARRAY or TABLE type: 'string'.",
      .oracle_str_user_error = "PLS-00531: Unsupported type in a VARRAY or TABLE type: '%.*s'."
};
static const _error _error_OB_ERR_POSITIONAL_FOLLOW_NAME = {
      .error_name            = "OB_ERR_POSITIONAL_FOLLOW_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "a positional parameter association may not follow a named association",
      .str_user_error        = "a positional parameter association may not follow a named association",
      .oracle_errno          = 312,
      .oracle_str_error      = "PLS-00312: a positional parameter association may not follow a named association",
      .oracle_str_user_error = "PLS-00312: a positional parameter association may not follow a named association"
};
static const _error _error_OB_ERR_NEED_A_LABEL = {
      .error_name            = "OB_ERR_NEED_A_LABEL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "EXIT/CONTINUE statement may have a label here; 'string' is not a label",
      .str_user_error        = "EXIT/CONTINUE statement may have a label here; '%.*s' is not a label",
      .oracle_errno          = 441,
      .oracle_str_error      = "PLS-00441: EXIT/CONTINUE statement may have a label here; 'string' is not a label",
      .oracle_str_user_error = "PLS-00441: EXIT/CONTINUE statement may have a label here; '%.*s' is not a label"
};
static const _error _error_OB_ERR_REFER_SAME_PACKAGE = {
      .error_name            = "OB_ERR_REFER_SAME_PACKAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "variable or constant initialization may not refer to functions declared in the same package",
      .str_user_error        = "variable or constant initialization may not refer to functions declared in the same package",
      .oracle_errno          = 492,
      .oracle_str_error      = "PLS-00492: variable or constant initialization may not refer to functions declared in the same package",
      .oracle_str_user_error = "PLS-00492: variable or constant initialization may not refer to functions declared in the same package"
};
static const _error _error_OB_ERR_PL_COMMON = {
      .error_name            = "OB_ERR_PL_COMMON",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "PL/SQL common error",
      .str_user_error        = "%s",
      .oracle_errno          = 1,
      .oracle_str_error      = "PLS-00001: PL/SQL common error",
      .oracle_str_user_error = "PLS-00001: %s"
};
static const _error _error_OB_ERR_IDENT_EMPTY = {
      .error_name            = "OB_ERR_IDENT_EMPTY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Identifier cannot be an empty string",
      .str_user_error        = "Identifier cannot be an empty string",
      .oracle_errno          = 182,
      .oracle_str_error      = "PLS-00182: Identifier cannot be an empty string",
      .oracle_str_user_error = "PLS-00182: Identifier cannot be an empty string"
};
static const _error _error_OB_ERR_PRAGMA_STR_UNSUPPORT = {
      .error_name            = "OB_ERR_PRAGMA_STR_UNSUPPORT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Pragma string does not support string",
      .str_user_error        = "Pragma %s does not support %.*s",
      .oracle_errno          = 132,
      .oracle_str_error      = "PLS-00132: Pragma string does not support string",
      .oracle_str_user_error = "PLS-00132: Pragma %s does not support %.*s"
};
static const _error _error_OB_ERR_END_LABEL_NOT_MATCH = {
      .error_name            = "OB_ERR_END_LABEL_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "END identifier 'string' must match 'string' at line string, column string",
      .str_user_error        = "END identifier '%.*s' must match '%.*s'",
      .oracle_errno          = 113,
      .oracle_str_error      = "PLS-00113: END identifier 'string' must match 'string' at line string, column string",
      .oracle_str_user_error = "PLS-00113: END identifier '%.*s' must match '%.*s'"
};
static const _error _error_OB_ERR_WRONG_FETCH_INTO_NUM = {
      .error_name            = "OB_ERR_WRONG_FETCH_INTO_NUM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "wrong number of values in the INTO list of a FETCH statement",
      .str_user_error        = "wrong number of values in the INTO list of a FETCH statement",
      .oracle_errno          = 394,
      .oracle_str_error      = "PLS-00394: wrong number of values in the INTO list of a FETCH statement",
      .oracle_str_user_error = "PLS-00394: wrong number of values in the INTO list of a FETCH statement"
};
static const _error _error_OB_ERR_PRAGMA_FIRST_ARG = {
      .error_name            = "OB_ERR_PRAGMA_FIRST_ARG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Pragma string expects 1st argument to be a procedure/function/package/cursor",
      .str_user_error        = "Pragma %s expects 1st argument to be a procedure/function/package/cursor",
      .oracle_errno          = 130,
      .oracle_str_error      = "PLS-00130: Pragma string expects 1st argument to be a procedure/function/package/cursor",
      .oracle_str_user_error = "PLS-00130: Pragma %s expects 1st argument to be a procedure/function/package/cursor"
};
static const _error _error_OB_ERR_TRIGGER_CANT_CHANGE_OLD_ROW = {
      .error_name            = "OB_ERR_TRIGGER_CANT_CHANGE_OLD_ROW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot change the value of an OLD reference variable",
      .str_user_error        = "cannot change the value of an OLD reference variable",
      .oracle_errno          = 4085,
      .oracle_str_error      = "ORA-04085: cannot change the value of an OLD reference variable",
      .oracle_str_user_error = "ORA-04085: cannot change the value of an OLD reference variable"
};
static const _error _error_OB_ERR_TRIGGER_CANT_CRT_ON_RO_VIEW = {
      .error_name            = "OB_ERR_TRIGGER_CANT_CRT_ON_RO_VIEW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot create trigger on read only view",
      .str_user_error        = "cannot create trigger on read only view",
      .oracle_errno          = 25005,
      .oracle_str_error      = "ORA-25005: cannot CREATE INSTEAD OF trigger on a read-only view",
      .oracle_str_user_error = "ORA-25005: cannot CREATE INSTEAD OF trigger on a read-only view"
};
static const _error _error_OB_ERR_TRIGGER_INVALID_REF_NAME = {
      .error_name            = "OB_ERR_TRIGGER_INVALID_REF_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid REFERENCING name",
      .str_user_error        = "invalid REFERENCING name",
      .oracle_errno          = 4074,
      .oracle_str_error      = "ORA-04074: invalid REFERENCING name",
      .oracle_str_user_error = "ORA-04074: invalid REFERENCING name"
};
static const _error _error_OB_ERR_EXP_NOT_INTO_TARGET = {
      .error_name            = "OB_ERR_EXP_NOT_INTO_TARGET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "expression 'string' cannot be used as an INTO-target of a SELECT/FETCH statement",
      .str_user_error        = "expression '%.*s' cannot be used as an INTO-target of a SELECT/FETCH statement",
      .oracle_errno          = 403,
      .oracle_str_error      = "PLS-00403: expression 'string' cannot be used as an INTO-target of a SELECT/FETCH statement",
      .oracle_str_user_error = "PLS-00403: expression '%.*s' cannot be used as an INTO-target of a SELECT/FETCH statement"
};
static const _error _error_OB_ERR_CASE_NULL = {
      .error_name            = "OB_ERR_CASE_NULL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "at least one result in the CASE expression must not be NULL",
      .str_user_error        = "at least one result in the CASE expression must not be NULL",
      .oracle_errno          = 617,
      .oracle_str_error      = "PLS-00617: at least one result in the CASE expression must not be NULL",
      .oracle_str_user_error = "PLS-00617: at least one result in the CASE expression must not be NULL"
};
static const _error _error_OB_ERR_INVALID_GOTO = {
      .error_name            = "OB_ERR_INVALID_GOTO",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid GOTO to non-label 'string'",
      .str_user_error        = "Invalid GOTO to non-label '%.*s'",
      .oracle_errno          = 301,
      .oracle_str_error      = "PLS-00301: Invalid GOTO to non-label 'string'",
      .oracle_str_user_error = "PLS-00301: Invalid GOTO to non-label '%.*s'"
};
static const _error _error_OB_ERR_PRIVATE_UDF_USE_IN_SQL = {
      .error_name            = "OB_ERR_PRIVATE_UDF_USE_IN_SQL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "function 'string' may not be used in SQL",
      .str_user_error        = "function '%.*s' may not be used in SQL",
      .oracle_errno          = 231,
      .oracle_str_error      = "PLS-00231: function 'string' may not be used in SQL",
      .oracle_str_user_error = "PLS-00231: function '%.*s' may not be used in SQL"
};
static const _error _error_OB_ERR_FIELD_NOT_DENOTABLE = {
      .error_name            = "OB_ERR_FIELD_NOT_DENOTABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "field string is not yet denotable",
      .str_user_error        = "field %.*s is not yet denotable",
      .oracle_errno          = 742,
      .oracle_str_error      = "PLS-00742: field string is not yet denotable",
      .oracle_str_user_error = "PLS-00742: field %.*s is not yet denotable"
};
static const _error _error_OB_NUMERIC_PRECISION_NOT_INTEGER = {
      .error_name            = "OB_NUMERIC_PRECISION_NOT_INTEGER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "non-integral numeric literal value is inappropriate in this context",
      .str_user_error        = "non-integral numeric literal %.*s is inappropriate in this context",
      .oracle_errno          = 325,
      .oracle_str_error      = "PLS-00325: non-integral numeric literal value is inappropriate in this context",
      .oracle_str_user_error = "PLS-00325: non-integral numeric literal %.*s is inappropriate in this context"
};
static const _error _error_OB_ERR_REQUIRE_INTEGER = {
      .error_name            = "OB_ERR_REQUIRE_INTEGER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "integer value required",
      .str_user_error        = "integer value required",
      .oracle_errno          = 02017,
      .oracle_str_error      = "ORA-02017: integer value required",
      .oracle_str_user_error = "ORA-02017: integer value required"
};
static const _error _error_OB_ERR_INDEX_TABLE_OF_CURSOR = {
      .error_name            = "OB_ERR_INDEX_TABLE_OF_CURSOR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Index Tables of Cursor Variables are disallowed",
      .str_user_error        = "Index Tables of Cursor Variables are disallowed",
      .oracle_errno          = 990,
      .oracle_str_error      = "PLS-00990: Index Tables of Cursor Variables are disallowed",
      .oracle_str_user_error = "PLS-00990: Index Tables of Cursor Variables are disallowed"
};
static const _error _error_OB_NULL_CHECK_ERROR = {
      .error_name            = "OB_NULL_CHECK_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot pass NULL to a NOT NULL constrained formal parameter",
      .str_user_error        = "cannot pass NULL to a NOT NULL constrained formal parameter",
      .oracle_errno          = 567,
      .oracle_str_error      = "PLS-00567: cannot pass NULL to a NOT NULL constrained formal parameter",
      .oracle_str_user_error = "PLS-00567: cannot pass NULL to a NOT NULL constrained formal parameter"
};
static const _error _error_OB_ERR_EX_NAME_ARG = {
      .error_name            = "OB_ERR_EX_NAME_ARG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "name of exception expected for first arg in exception_init pragma",
      .str_user_error        = "name of exception expected for first arg in exception_init pragma",
      .oracle_errno          = 124,
      .oracle_str_error      = "PLS-00124: name of exception expected for first arg in exception_init pragma",
      .oracle_str_user_error = "PLS-00124: name of exception expected for first arg in exception_init pragma"
};
static const _error _error_OB_ERR_EX_ARG_NUM = {
      .error_name            = "OB_ERR_EX_ARG_NUM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Illegal number of arguments for pragma EXCEPTION_INIT",
      .str_user_error        = "Illegal number of arguments for pragma EXCEPTION_INIT",
      .oracle_errno          = 128,
      .oracle_str_error      = "PLS-00128: Illegal number of arguments for pragma EXCEPTION_INIT",
      .oracle_str_user_error = "PLS-00128: Illegal number of arguments for pragma EXCEPTION_INIT"
};
static const _error _error_OB_ERR_EX_SECOND_ARG = {
      .error_name            = "OB_ERR_EX_SECOND_ARG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "second argument to PRAGMA EXCEPTION_INIT must be a numeric literal",
      .str_user_error        = "second argument to PRAGMA EXCEPTION_INIT must be a numeric literal",
      .oracle_errno          = 702,
      .oracle_str_error      = "PLS-00702: second argument to PRAGMA EXCEPTION_INIT must be a numeric literal",
      .oracle_str_user_error = "PLS-00702: second argument to PRAGMA EXCEPTION_INIT must be a numeric literal"
};
static const _error _error_OB_OBEN_CURSOR_NUMBER_IS_ZERO = {
      .error_name            = "OB_OBEN_CURSOR_NUMBER_IS_ZERO",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "DBMS_SQL.OPEN_CURSOR failed. security_level of 0 is not allowed",
      .str_user_error        = "DBMS_SQL.OPEN_CURSOR failed. security_level of 0 is not allowed",
      .oracle_errno          = 29474,
      .oracle_str_error      = "ORA-29474: DBMS_SQL.OPEN_CURSOR failed. security_level of 0 is not allowed",
      .oracle_str_user_error = "ORA-29474: DBMS_SQL.OPEN_CURSOR failed. security_level of 0 is not allowed"
};
static const _error _error_OB_NO_STMT_PARSE = {
      .error_name            = "OB_NO_STMT_PARSE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "no statement parsed",
      .str_user_error        = "no statement parsed",
      .oracle_errno          = 01003,
      .oracle_str_error      = "ORA-01003: no statement parsed",
      .oracle_str_user_error = "ORA-01003: no statement parsed"
};
static const _error _error_OB_ARRAY_CNT_IS_ILLEGAL = {
      .error_name            = "OB_ARRAY_CNT_IS_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid count argument passed to procedure dbms_sql.define_array",
      .str_user_error        = "Invalid count argument passed to procedure dbms_sql.define_array",
      .oracle_errno          = 29253,
      .oracle_str_error      = "ORA-29253: Invalid count argument passed to procedure dbms_sql.define_array",
      .oracle_str_user_error = "ORA-29253: Invalid count argument passed to procedure dbms_sql.define_array"
};
static const _error _error_OB_ERR_WRONG_SCHEMA_REF = {
      .error_name            = "OB_ERR_WRONG_SCHEMA_REF",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Table,View Or Sequence reference not allowed in this context",
      .str_user_error        = "Table,View Or Sequence reference not '%s%s%s%s%s' allowed in this context",
      .oracle_errno          = 357,
      .oracle_str_error      = "PLS-00357: Table,View Or Sequence reference not allowed in this context",
      .oracle_str_user_error = "PLS-00357: Table,View Or Sequence reference '%s%s%s%s%s' not allowed in this context"
};
static const _error _error_OB_ERR_COMPONENT_UNDECLARED = {
      .error_name            = "OB_ERR_COMPONENT_UNDECLARED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "component must be declared",
      .str_user_error        = "component '%.*s' must be declared",
      .oracle_errno          = 302,
      .oracle_str_error      = "PLS-00302: component must be declared",
      .oracle_str_user_error = "PLS-00302: component '%.*s' must be declared"
};
static const _error _error_OB_ERR_FUNC_ONLY_IN_SQL = {
      .error_name            = "OB_ERR_FUNC_ONLY_IN_SQL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "function or pseudo-column may be used inside a SQL statement only",
      .str_user_error        = "function or pseudo-column '%s' may be used inside a SQL statement only",
      .oracle_errno          = 204,
      .oracle_str_error      = "PLS-00204: function or pseudo-column may be used inside a SQL statement only",
      .oracle_str_user_error = "PLS-00204: function or pseudo-column '%s' may be used inside a SQL statement only"
};
static const _error _error_OB_ERR_UNDEFINED = {
      .error_name            = "OB_ERR_UNDEFINED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "object is not a procedure or is undefined",
      .str_user_error        = "'%s' is not a procedure or is undefined",
      .oracle_errno          = 221,
      .oracle_str_error      = "PLS-00221: object is not a procedure or is undefined",
      .oracle_str_user_error = "PLS-00221: '%s' is not a procedure or is undefined"
};
static const _error _error_OB_ERR_SUBTYPE_NOTNULL_MISMATCH = {
      .error_name            = "OB_ERR_SUBTYPE_NOTNULL_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "subtype of a not null type must also be not null",
      .str_user_error        = "subtype of a not null type must also be not null",
      .oracle_errno          = 366,
      .oracle_str_error      = "PLS-00366: subtype of a not null type must also be not null",
      .oracle_str_user_error = "PLS-00366: subtype of a not null type must also be not null"
};
static const _error _error_OB_ERR_BIND_VAR_NOT_EXIST = {
      .error_name            = "OB_ERR_BIND_VAR_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "bind variable does not exist",
      .str_user_error        = "bind variable does not exist",
      .oracle_errno          = 1006,
      .oracle_str_error      = "ORA-01006: bind variable does not exist",
      .oracle_str_user_error = "ORA-01006: bind variable does not exist"
};
static const _error _error_OB_ERR_CURSOR_IN_OPEN_DYNAMIC_SQL = {
      .error_name            = "OB_ERR_CURSOR_IN_OPEN_DYNAMIC_SQL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cursor cannot be used in dynamic SQL OPEN statement",
      .str_user_error        = "cursor '%.*s' cannot be used in dynamic SQL OPEN statement",
      .oracle_errno          = 455,
      .oracle_str_error      = "PLS-00455: cursor cannot be used in dynamic SQL OPEN statement",
      .oracle_str_user_error = "PLS-00455: cursor '%.*s' cannot be used in dynamic SQL OPEN statement"
};
static const _error _error_OB_ERR_INVALID_INPUT_ARGUMENT = {
      .error_name            = "OB_ERR_INVALID_INPUT_ARGUMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "input value for argument",
      .str_user_error        = "input value for argument #%d is not valid",
      .oracle_errno          = 28106,
      .oracle_str_error      = "ORA-28106: input value for argument",
      .oracle_str_user_error = "ORA-28106: input value for argument #%d is not valid"
};
static const _error _error_OB_ERR_CLIENT_IDENTIFIER_TOO_LONG = {
      .error_name            = "OB_ERR_CLIENT_IDENTIFIER_TOO_LONG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Client identifier is too long",
      .str_user_error        = "Client identifier is too long",
      .oracle_errno          = 28264,
      .oracle_str_error      = "ORA-28264: Client identifier is too long",
      .oracle_str_user_error = "ORA-28264: Client identifier is too long"
};
static const _error _error_OB_ERR_INVALID_NAMESPACE_VALUE = {
      .error_name            = "OB_ERR_INVALID_NAMESPACE_VALUE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Invalid NameSpace Value",
      .str_user_error        = "Invalid NameSpace Value",
      .oracle_errno          = 28267,
      .oracle_str_error      = "ORA-28267: Invalid NameSpace Value",
      .oracle_str_user_error = "ORA-28267: Invalid NameSpace Value"
};
static const _error _error_OB_ERR_INVALID_NAMESPACE_BEG = {
      .error_name            = "OB_ERR_INVALID_NAMESPACE_BEG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Namespace beginning with 'SYS_' is not allowed",
      .str_user_error        = "Namespace beginning with 'SYS_' is not allowed",
      .oracle_errno          = 28265,
      .oracle_str_error      = "ORA-28265: Namespace beginning with 'SYS_' is not allowed",
      .oracle_str_user_error = "ORA-28265: Namespace beginning with 'SYS_' is not allowed"
};
static const _error _error_OB_ERR_SESSION_CONTEXT_EXCEEDED = {
      .error_name            = "OB_ERR_SESSION_CONTEXT_EXCEEDED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The maximum size specified by the _session_context_size parameter was exceeded.",
      .str_user_error        = "The maximum size specified by the _session_context_size parameter was exceeded.",
      .oracle_errno          = 28268,
      .oracle_str_error      = "ORA-28268: The maximum size specified by the _session_context_size parameter was exceeded.",
      .oracle_str_user_error = "ORA-28268: The maximum size specified by the _session_context_size parameter was exceeded."
};
static const _error _error_OB_ERR_NOT_CURSOR_NAME_IN_CURRENT_OF = {
      .error_name            = "OB_ERR_NOT_CURSOR_NAME_IN_CURRENT_OF",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "identifier in CURRENT OF clause is not a cursor name",
      .str_user_error        = "identifier in CURRENT OF clause is not a cursor name",
      .oracle_errno          = 413,
      .oracle_str_error      = "PLS-00413: identifier in CURRENT OF clause is not a cursor name",
      .oracle_str_user_error = "PLS-00413: identifier in CURRENT OF clause is not a cursor name"
};
static const _error _error_OB_ERR_NOT_FOR_UPDATE_CURSOR_IN_CURRENT_OF = {
      .error_name            = "OB_ERR_NOT_FOR_UPDATE_CURSOR_IN_CURRENT_OF",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cursor must be declared with FOR UPDATE to use with CURRENT OF",
      .str_user_error        = "cursor '%.*s' must be declared with FOR UPDATE to use with CURRENT OF",
      .oracle_errno          = 404,
      .oracle_str_error      = "PLS-00404: cursor must be declared with FOR UPDATE to use with CURRENT OF",
      .oracle_str_user_error = "PLS-00404: cursor '%.*s' must be declared with FOR UPDATE to use with CURRENT OF"
};
static const _error _error_OB_ERR_DUP_SIGNAL_SET = {
      .error_name            = "OB_ERR_DUP_SIGNAL_SET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DUP_SIGNAL_SET,
      .sqlstate              = "42000",
      .str_error             = "Duplicate condition information item",
      .str_user_error        = "Duplicate condition information item '%s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9694, Duplicate condition information item",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9694, Duplicate condition information item '%s'"
};
static const _error _error_OB_ERR_SIGNAL_NOT_FOUND = {
      .error_name            = "OB_ERR_SIGNAL_NOT_FOUND",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SIGNAL_NOT_FOUND,
      .sqlstate              = "02000",
      .str_error             = "Unhandled user-defined not found condition",
      .str_user_error        = "Unhandled user-defined not found condition",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9695, Unhandled user-defined not found condition",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9695, Unhandled user-defined not found condition"
};
static const _error _error_OB_ERR_INVALID_CONDITION_NUMBER = {
      .error_name            = "OB_ERR_INVALID_CONDITION_NUMBER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_DA_INVALID_CONDITION_NUMBER,
      .sqlstate              = "35000",
      .str_error             = "Invalid condition number",
      .str_user_error        = "Invalid condition number",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9696, Invalid condition number",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9696, Invalid condition number"
};
static const _error _error_OB_ERR_RECURSIVE_SQL_LEVELS_EXCEEDED = {
      .error_name            = "OB_ERR_RECURSIVE_SQL_LEVELS_EXCEEDED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "maximum number of recursive SQL levels exceeded",
      .str_user_error        = "maximum number of recursive SQL levels exceeded",
      .oracle_errno          = 36,
      .oracle_str_error      = "ORA-00036: maximum number of recursive SQL levels (%ld) exceeded",
      .oracle_str_user_error = "ORA-00036: maximum number of recursive SQL levels (%ld) exceeded"
};
static const _error _error_OB_ERR_INVALID_SECTION = {
      .error_name            = "OB_ERR_INVALID_SECTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid section for this type of Compound Trigger",
      .str_user_error        = "invalid section for this type of Compound Trigger",
      .oracle_errno          = 675,
      .oracle_str_error      = "PLS-00675: invalid section for this type of Compound Trigger",
      .oracle_str_user_error = "PLS-00675: invalid section for this type of Compound Trigger"
};
static const _error _error_OB_ERR_DUPLICATE_TRIGGER_SECTION = {
      .error_name            = "OB_ERR_DUPLICATE_TRIGGER_SECTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "duplicate Compound Triggers section",
      .str_user_error        = "duplicate Compound Triggers section",
      .oracle_errno          = 676,
      .oracle_str_error      = "PLS-00676: duplicate Compound Triggers section",
      .oracle_str_user_error = "PLS-00676: duplicate Compound Triggers section"
};
static const _error _error_OB_ERR_PARSE_PLSQL = {
      .error_name            = "OB_ERR_PARSE_PLSQL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unexpected symbol",
      .str_user_error        = "Encountered the symbol %s when expecting one of the following: %s",
      .oracle_errno          = 103,
      .oracle_str_error      = "PLS-00103: Encountered the symbol A when expecting one of the following: B",
      .oracle_str_user_error = "PLS-00103: Encountered the symbol %s when expecting one of the following: %s"
};
static const _error _error_OB_ERR_SIGNAL_WARN = {
      .error_name            = "OB_ERR_SIGNAL_WARN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SIGNAL_WARN,
      .sqlstate              = "01000",
      .str_error             = "Unhandled user-defined warning condition",
      .str_user_error        = "Unhandled user-defined warning condition",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9701, Unhandled user-defined warning condition",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9701, Unhandled user-defined warning condition"
};
static const _error _error_OB_ERR_RESIGNAL_WITHOUT_ACTIVE_HANDLER = {
      .error_name            = "OB_ERR_RESIGNAL_WITHOUT_ACTIVE_HANDLER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER,
      .sqlstate              = "0K000",
      .str_error             = "RESIGNAL when handler not active",
      .str_user_error        = "RESIGNAL when handler not active",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9702, RESIGNAL when handler not active",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9702, RESIGNAL when handler not active"
};
static const _error _error_OB_ERR_CANNOT_UPDATE_VIRTUAL_COL_IN_TRG = {
      .error_name            = "OB_ERR_CANNOT_UPDATE_VIRTUAL_COL_IN_TRG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Virtual column cannot be updated in trigger body",
      .str_user_error        = "Virtual column cannot be updated in trigger body",
      .oracle_errno          = 54029,
      .oracle_str_error      = "ORA-54029: Virtual column cannot be updated in trigger body",
      .oracle_str_user_error = "ORA-54029: Virtual column cannot be updated in trigger body"
};
static const _error _error_OB_ERR_TRG_ORDER = {
      .error_name            = "OB_ERR_TRG_ORDER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_REFERENCED_TRIGGER_NOT_EXIST,
      .sqlstate              = "HY000",
      .str_error             = "must use LOG_USER_ERROR",
      .str_user_error        = "Referenced trigger '%s' for the given action time and event type does not exist.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: must use LOG_USER_ERROR",
      .oracle_str_user_error = "ORA-00600: Trigger %s referenced in FOLLOWS or PRECEDES clause may not exist"
};
static const _error _error_OB_ERR_REF_ANOTHER_TABLE_IN_TRG = {
      .error_name            = "OB_ERR_REF_ANOTHER_TABLE_IN_TRG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot reference a trigger defined on another table",
      .str_user_error        = "cannot reference a trigger defined on another table",
      .oracle_errno          = 25021,
      .oracle_str_error      = "ORA-25021: cannot reference a trigger defined on another table",
      .oracle_str_user_error = "ORA-25021: cannot reference a trigger defined on another table"
};
static const _error _error_OB_ERR_REF_TYPE_IN_TRG = {
      .error_name            = "OB_ERR_REF_TYPE_IN_TRG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot reference a trigger of a different type",
      .str_user_error        = "cannot reference a trigger of a different type",
      .oracle_errno          = 25022,
      .oracle_str_error      = "ORA-25022: cannot reference a trigger of a different type",
      .oracle_str_user_error = "ORA-25022: cannot reference a trigger of a different type"
};
static const _error _error_OB_ERR_REF_CYCLIC_IN_TRG = {
      .error_name            = "OB_ERR_REF_CYCLIC_IN_TRG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Cyclic trigger dependency is not allowed",
      .str_user_error        = "Cyclic trigger dependency is not allowed",
      .oracle_errno          = 25023,
      .oracle_str_error      = "ORA-25023: Cyclic trigger dependency is not allowed",
      .oracle_str_user_error = "ORA-25023: Cyclic trigger dependency is not allowed"
};
static const _error _error_OB_ERR_CANNOT_SPECIFY_PRECEDES_IN_TRG = {
      .error_name            = "OB_ERR_CANNOT_SPECIFY_PRECEDES_IN_TRG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot specify PRECEDES clause",
      .str_user_error        = "cannot specify PRECEDES clause",
      .oracle_errno          = 25025,
      .oracle_str_error      = "ORA-25025: cannot specify PRECEDES clause",
      .oracle_str_user_error = "ORA-25025: cannot specify PRECEDES clause"
};
static const _error _error_OB_ERR_CANNOT_PERFORM_DML_INSIDE_QUERY = {
      .error_name            = "OB_ERR_CANNOT_PERFORM_DML_INSIDE_QUERY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot perform a DML operation inside a query",
      .str_user_error        = "cannot perform a DML operation inside a query",
      .oracle_errno          = 14551,
      .oracle_str_error      = "ORA-14551: cannot perform a DML operation inside a query",
      .oracle_str_user_error = "ORA-14551: cannot perform a DML operation inside a query"
};
static const _error _error_OB_ERR_CANNOT_PERFORM_DDL_COMMIT_OR_ROLLBACK_INSIDE_QUERY_OR_DML_TIPS = {
      .error_name            = "OB_ERR_CANNOT_PERFORM_DDL_COMMIT_OR_ROLLBACK_INSIDE_QUERY_OR_DML_TIPS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot perform a DDL commit or rollback inside a query or DML tips",
      .str_user_error        = "cannot perform a DDL commit or rollback inside a query or DML tips",
      .oracle_errno          = 14552,
      .oracle_str_error      = "ORA-14552: cannot perform a DDL commit or rollback inside a query or DML tips",
      .oracle_str_user_error = "ORA-14552: cannot perform a DDL commit or rollback inside a query or DML tips"
};
static const _error _error_OB_ERR_STATEMENT_STRING_IN_EXECUTE_IMMEDIATE_IS_NULL_OR_ZERO_LENGTH = {
      .error_name            = "OB_ERR_STATEMENT_STRING_IN_EXECUTE_IMMEDIATE_IS_NULL_OR_ZERO_LENGTH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "statement string in EXECUTE IMMEDIATE is NULL or 0 length",
      .str_user_error        = "statement string in EXECUTE IMMEDIATE is NULL or 0 length",
      .oracle_errno          = 06535,
      .oracle_str_error      = "ORA-06535: statement string in EXECUTE IMMEDIATE is NULL or 0 length",
      .oracle_str_user_error = "ORA-06535: statement string in EXECUTE IMMEDIATE is NULL or 0 length"
};
static const _error _error_OB_ERR_MISSING_INTO_KEYWORD = {
      .error_name            = "OB_ERR_MISSING_INTO_KEYWORD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "missing INTO keyword",
      .str_user_error        = "missing INTO keyword",
      .oracle_errno          = 925,
      .oracle_str_error      = "ORA-00925: missing INTO keyword",
      .oracle_str_user_error = "ORA-00925: missing INTO keyword"
};
static const _error _error_OB_ERR_CLAUSE_RETURN_ILLEGAL = {
      .error_name            = "OB_ERR_CLAUSE_RETURN_ILLEGAL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "RETURNING clause must be used with INSERT, UPDATE, or DELETE statements",
      .str_user_error        = "RETURNING clause must be used with INSERT, UPDATE, or DELETE statements",
      .oracle_errno          = 6547,
      .oracle_str_error      = "ORA-06547: RETURNING clause must be used with INSERT, UPDATE, or DELETE statements",
      .oracle_str_user_error = "ORA-06547: RETURNING clause must be used with INSERT, UPDATE, or DELETE statements"
};
static const _error _error_OB_ERR_NAME_HAS_TOO_MANY_PARTS = {
      .error_name            = "OB_ERR_NAME_HAS_TOO_MANY_PARTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "name has too many parts",
      .str_user_error        = "name has too many parts",
      .oracle_errno          = 6563,
      .oracle_str_error      = "ORA-06563: name has too many parts",
      .oracle_str_user_error = "ORA-06563: name has too many parts"
};
static const _error _error_OB_ERR_LOB_SPAN_TRANSACTION = {
      .error_name            = "OB_ERR_LOB_SPAN_TRANSACTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "LOB locators cannot span transactions",
      .str_user_error        = "LOB locators cannot span transactions",
      .oracle_errno          = 22990,
      .oracle_str_error      = "ORA-22990: LOB locators cannot span transactions",
      .oracle_str_user_error = "ORA-22990: LOB locators cannot span transactions"
};
static const _error _error_OB_ERR_INVALID_MULTISET = {
      .error_name            = "OB_ERR_INVALID_MULTISET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "MULTISET expression not allowed",
      .str_user_error        = "MULTISET expression not allowed",
      .oracle_errno          = 22903,
      .oracle_str_error      = "ORA-22903: MULTISET expression not allowed",
      .oracle_str_user_error = "ORA-22903: MULTISET expression not allowed"
};
static const _error _error_OB_ERR_INVALID_CAST_UDT = {
      .error_name            = "OB_ERR_INVALID_CAST_UDT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "invalid CAST to a type that is not a nested table or VARRAY",
      .str_user_error        = "invalid CAST to a type that is not a nested table or VARRAY",
      .oracle_errno          = 22907,
      .oracle_str_error      = "ORA-22907: invalid CAST to a type that is not a nested table or VARRAY",
      .oracle_str_user_error = "ORA-22907: invalid CAST to a type that is not a nested table or VARRAY"
};
static const _error _error_OB_ERR_POLICY_EXIST = {
      .error_name            = "OB_ERR_POLICY_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "policy already exists",
      .str_user_error        = "policy already exists",
      .oracle_errno          = 28101,
      .oracle_str_error      = "ORA-28101: policy already exists",
      .oracle_str_user_error = "ORA-28101: policy already exists"
};
static const _error _error_OB_ERR_POLICY_NOT_EXIST = {
      .error_name            = "OB_ERR_POLICY_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "policy does not exist",
      .str_user_error        = "policy does not exist",
      .oracle_errno          = 28102,
      .oracle_str_error      = "ORA-28102: policy does not exist",
      .oracle_str_user_error = "ORA-28102: policy does not exist"
};
static const _error _error_OB_ERR_ADD_POLICY_TO_SYS_OBJECT = {
      .error_name            = "OB_ERR_ADD_POLICY_TO_SYS_OBJECT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "adding a policy to an object owned by SYS is not allowed",
      .str_user_error        = "adding a policy to an object owned by SYS is not allowed",
      .oracle_errno          = 28103,
      .oracle_str_error      = "ORA-28103: adding a policy to an object owned by SYS is not allowed",
      .oracle_str_user_error = "ORA-28103: adding a policy to an object owned by SYS is not allowed"
};
static const _error _error_OB_ERR_INVALID_INPUT_STRING = {
      .error_name            = "OB_ERR_INVALID_INPUT_STRING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "input value for %s is not valid",
      .str_user_error        = "input value for %s is not valid",
      .oracle_errno          = 28104,
      .oracle_str_error      = "ORA-28104: input value for %s is not valid",
      .oracle_str_user_error = "ORA-28104: input value for %s is not valid"
};
static const _error _error_OB_ERR_SEC_COLUMN_ON_VIEW = {
      .error_name            = "OB_ERR_SEC_COLUMN_ON_VIEW",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot create security relevant column policy in an object view",
      .str_user_error        = "cannot create security relevant column policy in an object view",
      .oracle_errno          = 28105,
      .oracle_str_error      = "ORA-28105: cannot create security relevant column policy in an object view",
      .oracle_str_user_error = "ORA-28105: cannot create security relevant column policy in an object view"
};
static const _error _error_OB_ERR_INVALID_INPUT_FOR_ARGUMENT = {
      .error_name            = "OB_ERR_INVALID_INPUT_FOR_ARGUMENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "input value for argument %s is not valid",
      .str_user_error        = "input value for argument %s is not valid",
      .oracle_errno          = 28106,
      .oracle_str_error      = "ORA-28106: input value for argument %s is not valid",
      .oracle_str_user_error = "ORA-28106: input value for argument %s is not valid"
};
static const _error _error_OB_ERR_POLICY_DISABLED = {
      .error_name            = "OB_ERR_POLICY_DISABLED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "policy was disabled",
      .str_user_error        = "policy was disabled",
      .oracle_errno          = 28107,
      .oracle_str_error      = "ORA-28107: policy was disabled",
      .oracle_str_user_error = "ORA-28107: policy was disabled"
};
static const _error _error_OB_ERR_CIRCULAR_POLICIES = {
      .error_name            = "OB_ERR_CIRCULAR_POLICIES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "circular security policies detected",
      .str_user_error        = "circular security policies detected",
      .oracle_errno          = 28108,
      .oracle_str_error      = "ORA-28108: circular security policies detected",
      .oracle_str_user_error = "ORA-28108: circular security policies detected"
};
static const _error _error_OB_ERR_TOO_MANY_POLICIES = {
      .error_name            = "OB_ERR_TOO_MANY_POLICIES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the number of related policies has exceeded the limit of 16",
      .str_user_error        = "the number of related policies has exceeded the limit of 16",
      .oracle_errno          = 28109,
      .oracle_str_error      = "ORA-28109: the number of related policies has exceeded the limit of 16",
      .oracle_str_user_error = "ORA-28109: the number of related policies has exceeded the limit of 16"
};
static const _error _error_OB_ERR_POLICY_FUNCTION = {
      .error_name            = "OB_ERR_POLICY_FUNCTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "policy function or package %.*s.%.*s has error",
      .str_user_error        = "policy function or package %.*s.%.*s has error",
      .oracle_errno          = 28110,
      .oracle_str_error      = "ORA-28110: policy function or package %.*s.%.*s has error",
      .oracle_str_user_error = "ORA-28110: policy function or package %.*s.%.*s has error"
};
static const _error _error_OB_ERR_NO_PRIV_EVAL_PREDICATE = {
      .error_name            = "OB_ERR_NO_PRIV_EVAL_PREDICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "insufficient privilege to evaluate policy predicate",
      .str_user_error        = "insufficient privilege to evaluate policy predicate",
      .oracle_errno          = 28111,
      .oracle_str_error      = "ORA-28111: insufficient privilege to evaluate policy predicate",
      .oracle_str_user_error = "ORA-28111: insufficient privilege to evaluate policy predicate"
};
static const _error _error_OB_ERR_EXECUTE_POLICY_FUNCTION = {
      .error_name            = "OB_ERR_EXECUTE_POLICY_FUNCTION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "failed to execute policy function",
      .str_user_error        = "failed to execute policy function",
      .oracle_errno          = 28112,
      .oracle_str_error      = "ORA-28112: failed to execute policy function",
      .oracle_str_user_error = "ORA-28112: failed to execute policy function"
};
static const _error _error_OB_ERR_POLICY_PREDICATE = {
      .error_name            = "OB_ERR_POLICY_PREDICATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "policy predicate has error",
      .str_user_error        = "policy predicate has error",
      .oracle_errno          = 28113,
      .oracle_str_error      = "ORA-28113: policy predicate has error",
      .oracle_str_user_error = "ORA-28113: policy predicate has error"
};
static const _error _error_OB_ERR_NO_PRIV_DIRECT_PATH_ACCESS = {
      .error_name            = "OB_ERR_NO_PRIV_DIRECT_PATH_ACCESS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "insufficient privileges to do direct path access",
      .str_user_error        = "insufficient privileges to do direct path access",
      .oracle_errno          = 28116,
      .oracle_str_error      = "ORA-28116: insufficient privileges to do direct path access",
      .oracle_str_user_error = "ORA-28116: insufficient privileges to do direct path access"
};
static const _error _error_OB_ERR_INTEGRITY_CONSTRAINT_VIOLATED = {
      .error_name            = "OB_ERR_INTEGRITY_CONSTRAINT_VIOLATED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "integrity constraint violated - parent record not found",
      .str_user_error        = "integrity constraint violated - parent record not found",
      .oracle_errno          = 28117,
      .oracle_str_error      = "ORA-28117: integrity constraint violated - parent record not found",
      .oracle_str_user_error = "ORA-28117: integrity constraint violated - parent record not found"
};
static const _error _error_OB_ERR_POLICY_GROUP_EXIST = {
      .error_name            = "OB_ERR_POLICY_GROUP_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "policy group already exists",
      .str_user_error        = "policy group already exists",
      .oracle_errno          = 28118,
      .oracle_str_error      = "ORA-28118: policy group already exists",
      .oracle_str_user_error = "ORA-28118: policy group already exists"
};
static const _error _error_OB_ERR_POLICY_GROUP_NOT_EXIST = {
      .error_name            = "OB_ERR_POLICY_GROUP_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "policy group does not exist",
      .str_user_error        = "policy group does not exist",
      .oracle_errno          = 28119,
      .oracle_str_error      = "ORA-28119: policy group does not exist",
      .oracle_str_user_error = "ORA-28119: policy group does not exist"
};
static const _error _error_OB_ERR_DRIVING_CONTEXT_EXIST = {
      .error_name            = "OB_ERR_DRIVING_CONTEXT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "driving context already exists",
      .str_user_error        = "driving context already exists",
      .oracle_errno          = 28120,
      .oracle_str_error      = "ORA-28120: driving context already exists",
      .oracle_str_user_error = "ORA-28120: driving context already exists"
};
static const _error _error_OB_ERR_DRIVING_CONTEXT_NOT_EXIST = {
      .error_name            = "OB_ERR_DRIVING_CONTEXT_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "driving context does not exist",
      .str_user_error        = "driving context does not exist",
      .oracle_errno          = 28121,
      .oracle_str_error      = "ORA-28121: driving context does not exist",
      .oracle_str_user_error = "ORA-28121: driving context does not exist"
};
static const _error _error_OB_ERR_UPDATE_DEFAULT_GROUP = {
      .error_name            = "OB_ERR_UPDATE_DEFAULT_GROUP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "can not update SYS_DEFAULT policy group",
      .str_user_error        = "can not update SYS_DEFAULT policy group",
      .oracle_errno          = 28122,
      .oracle_str_error      = "ORA-28122: can not update SYS_DEFAULT policy group",
      .oracle_str_user_error = "ORA-28122: can not update SYS_DEFAULT policy group"
};
static const _error _error_OB_ERR_CONTEXT_CONTAIN_INVALID_GROUP = {
      .error_name            = "OB_ERR_CONTEXT_CONTAIN_INVALID_GROUP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Driving context %.*s,%.*s contains invalid group %.*s",
      .str_user_error        = "Driving context %.*s,%.*s contains invalid group %.*s",
      .oracle_errno          = 28123,
      .oracle_str_error      = "ORA-28123: Driving context %.*s,%.*s contains invalid group %.*s",
      .oracle_str_user_error = "ORA-28123: Driving context %.*s,%.*s contains invalid group %.*s"
};
static const _error _error_OB_ERR_INVALID_SEC_COLUMN_TYPE = {
      .error_name            = "OB_ERR_INVALID_SEC_COLUMN_TYPE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Column %.*s in sec_relevant_cols cannot be of an object data type",
      .str_user_error        = "Column %.*s in sec_relevant_cols cannot be of an object data type",
      .oracle_errno          = 28124,
      .oracle_str_error      = "ORA-28124: Column %.*s in sec_relevant_cols cannot be of an object data type",
      .oracle_str_user_error = "ORA-28124: Column %.*s in sec_relevant_cols cannot be of an object data type"
};
static const _error _error_OB_ERR_UNPROTECTED_VIRTUAL_COLUMN = {
      .error_name            = "OB_ERR_UNPROTECTED_VIRTUAL_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "A protected base column was referenced in an unprotected virtual column expression",
      .str_user_error        = "A protected base column was referenced in an unprotected virtual column expression",
      .oracle_errno          = 28125,
      .oracle_str_error      = "ORA-28125: A protected base column was referenced in an unprotected virtual column expression",
      .oracle_str_user_error = "ORA-28125: A protected base column was referenced in an unprotected virtual column expression"
};
static const _error _error_OB_ERR_ATTRIBUTE_ASSOCIATION = {
      .error_name            = "OB_ERR_ATTRIBUTE_ASSOCIATION",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Attribute association failed for policy %.*s",
      .str_user_error        = "Attribute association failed for policy %.*s",
      .oracle_errno          = 28126,
      .oracle_str_error      = "ORA-28126: Attribute association failed for policy %.*s",
      .oracle_str_user_error = "ORA-28126: Attribute association failed for policy %.*s"
};
static const _error _error_OB_ERR_MERGE_INTO_WITH_POLICY = {
      .error_name            = "OB_ERR_MERGE_INTO_WITH_POLICY",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The MERGE INTO syntax does not support the security policy",
      .str_user_error        = "The MERGE INTO syntax does not support the security policy",
      .oracle_errno          = 28132,
      .oracle_str_error      = "ORA-28132: The MERGE INTO syntax does not support the security policy",
      .oracle_str_user_error = "ORA-28132: The MERGE INTO syntax does not support the security policy"
};
static const _error _error_OB_ERR_SP_NO_DROP_SP = {
      .error_name            = "OB_ERR_SP_NO_DROP_SP",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_SP_NO_DROP_SP,
      .sqlstate              = "HY000",
      .str_error             = "Can't drop or alter a procedure/function from within another stored routine.",
      .str_user_error        = "Can't drop or alter a '%s' from within another stored routine.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9743, Can't drop or alter a procedure/function from within another stored routine.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9743, Can't drop or alter a '%s' from within another stored routine."
};
static const _error _error_OB_ERR_RECOMPILATION_OBJECT = {
      .error_name            = "OB_ERR_RECOMPILATION_OBJECT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "errors during recompilation/revalidation of object",
      .str_user_error        = "errors during recompilation/revalidation of object",
      .oracle_errno          = 4045,
      .oracle_str_error      = "ORA-04045: errors during recompilation/revalidation of %.*s.%.*s",
      .oracle_str_user_error = "ORA-04045: errors during recompilation/revalidation of %.*s.%.*s"
};
static const _error _error_OB_ERR_VARIABLE_NOT_IN_SELECT_LIST = {
      .error_name            = "OB_ERR_VARIABLE_NOT_IN_SELECT_LIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "variable not in select list",
      .str_user_error        = "variable not in select list",
      .oracle_errno          = 1007,
      .oracle_str_error      = "ORA-01007: variable not in select list",
      .oracle_str_user_error = "ORA-01007: variable not in select list"
};
static const _error _error_OB_ERR_MULTI_RECORD = {
      .error_name            = "OB_ERR_MULTI_RECORD",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "coercion into multiple record targets not supported",
      .str_user_error        = "coercion into multiple record targets not supported",
      .oracle_errno          = 494,
      .oracle_str_error      = "ORA-00494: coercion into multiple record targets not supported",
      .oracle_str_user_error = "ORA-00494: coercion into multiple record targets not supported"
};
static const _error _error_OB_ERR_MALFORMED_PS_PACKET = {
      .error_name            = "OB_ERR_MALFORMED_PS_PACKET",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "malformed ps packet",
      .str_user_error        = "malformed ps packet",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9747, malformed ps packet",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9747, malformed ps packet"
};
static const _error _error_OB_ERR_VIEW_SELECT_CONTAIN_QUESTIONMARK = {
      .error_name            = "OB_ERR_VIEW_SELECT_CONTAIN_QUESTIONMARK",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = 1351,
      .sqlstate              = "HY000",
      .str_error             = "View's SELECT contains a variable or parameter",
      .str_user_error        = "View's SELECT contains a variable or parameter",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9748, View's SELECT contains a variable or parameter",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9748, View's SELECT contains a variable or parameter"
};
static const _error _error_OB_ERR_OBJECT_NOT_EXIST = {
      .error_name            = "OB_ERR_OBJECT_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "object does not exist",
      .str_user_error        = "object does not exist",
      .oracle_errno          = 6564,
      .oracle_str_error      = "ORA-06564: object does not exist",
      .oracle_str_user_error = "ORA-06564: object does not exist"
};
static const _error _error_OB_ERR_TABLE_OUT_OF_RANGE = {
      .error_name            = "OB_ERR_TABLE_OUT_OF_RANGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "PL/SQL: index for PL/SQL table out of range for host language array",
      .str_user_error        = "PL/SQL: index for PL/SQL table out of range for host language array",
      .oracle_errno          = 6513,
      .oracle_str_error      = "ORA-06513: PL/SQL: index for PL/SQL table out of range for host language array",
      .oracle_str_user_error = "ORA-06513: PL/SQL: index for PL/SQL table out of range for host language array"
};
static const _error _error_OB_ERR_WRONG_USAGE = {
      .error_name            = "OB_ERR_WRONG_USAGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_USAGE,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect usage",
      .str_user_error        = "Incorrect usage of %s",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9751, Incorrect usage",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9751, Incorrect usage of %s"
};
static const _error _error_OB_ERR_FORALL_ON_REMOTE_TABLE = {
      .error_name            = "OB_ERR_FORALL_ON_REMOTE_TABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "FORALL INSERT/UPDATE/DELETE not support on remote tables",
      .str_user_error        = "FORALL INSERT/UPDATE/DELETE not support on remote tables",
      .oracle_errno          = 739,
      .oracle_str_error      = "PLS-00739: FORALL INSERT/UPDATE/DELETE not support on remote tables",
      .oracle_str_user_error = "PLS-00739: FORALL INSERT/UPDATE/DELETE not support on remote tables"
};
static const _error _error_OB_ERR_SEQUENCE_NOT_DEFINE = {
      .error_name            = "OB_ERR_SEQUENCE_NOT_DEFINE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "sequence is not yet defined in this session",
      .str_user_error        = "sequence is not yet defined in this session",
      .oracle_errno          = 8002,
      .oracle_str_error      = "ORA-08002: sequence is not yet defined in this session",
      .oracle_str_user_error = "ORA-08002: sequence is not yet defined in this session"
};
static const _error _error_OB_ERR_DEBUG_ID_NOT_EXIST = {
      .error_name            = "OB_ERR_DEBUG_ID_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "debug_session_id does not exist",
      .str_user_error        = "debug_session_id = %u does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9754, debug_session_id does not exist",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9754, debug_session_id = %u does not exist"
};
static const _error _error_OB_ERR_TABLE_NO_MLOG = {
      .error_name            = "OB_ERR_TABLE_NO_MLOG",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "table does not have a materialized view log",
      .str_user_error        = "table `%s`.`%s` does not have a materialized view log",
      .oracle_errno          = 23413,
      .oracle_str_error      = "ORA-23413: table does not have a materialized view log",
      .oracle_str_user_error = "ORA-23413: table %s.%s does not have a materialized view log"
};
static const _error _error_OB_ERR_MLOG_EXIST = {
      .error_name            = "OB_ERR_MLOG_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "a materialized view log already exists on table",
      .str_user_error        = "a materialized view log already exists on table `%s`",
      .oracle_errno          = 12000,
      .oracle_str_error      = "ORA-12000: a materialized view log already exists on table",
      .oracle_str_user_error = "ORA-12000: a materialized view log already exists on table %s"
};
static const _error _error_OB_ERR_MVIEW_NOT_EXIST = {
      .error_name            = "OB_ERR_MVIEW_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "materialized view does not exist",
      .str_user_error        = "materialized view `%s`.`%s` does not exist",
      .oracle_errno          = 12003,
      .oracle_str_error      = "ORA-12003: materialized view does not exist",
      .oracle_str_user_error = "ORA-12003: materialized view %s.%s does not exist"
};
static const _error _error_OB_ERR_MVIEW_EXIST = {
      .error_name            = "OB_ERR_MVIEW_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "materialized view already exists",
      .str_user_error        = "materialized view `%s`.`%s` already exists",
      .oracle_errno          = 12006,
      .oracle_str_error      = "ORA-12006: materialized view already exists",
      .oracle_str_user_error = "ORA-12006: materialized view %s.%s already exists"
};
static const _error _error_OB_ERR_MLOG_IS_YOUNGER = {
      .error_name            = "OB_ERR_MLOG_IS_YOUNGER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "materialized view log younger than last refresh",
      .str_user_error        = "materialized view log on `%s`.`%s` younger than last refresh",
      .oracle_errno          = 12034,
      .oracle_str_error      = "ORA-12034: materialized view log younger than last refresh",
      .oracle_str_user_error = "ORA-12034: materialized view log on %s.%s younger than last refresh"
};
static const _error _error_OB_ERR_MVIEW_CAN_NOT_FAST_REFRESH = {
      .error_name            = "OB_ERR_MVIEW_CAN_NOT_FAST_REFRESH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot fast refresh materialized view",
      .str_user_error        = "cannot fast refresh materialized view `%s`.`%s`",
      .oracle_errno          = 12052,
      .oracle_str_error      = "ORA-12052: cannot fast refresh materialized view",
      .oracle_str_user_error = "ORA-12052: cannot fast refresh materialized view %s.%s"
};
static const _error _error_OB_ERR_MVIEW_NEVER_REFRESH = {
      .error_name            = "OB_ERR_MVIEW_NEVER_REFRESH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot explicitly refresh a NEVER REFRESH materialized view",
      .str_user_error        = "cannot explicitly refresh a NEVER REFRESH materialized view (`%s`)",
      .oracle_errno          = 23538,
      .oracle_str_error      = "ORA-23538: cannot explicitly refresh a NEVER REFRESH materialized view",
      .oracle_str_user_error = "ORA-23538: cannot explicitly refresh a NEVER REFRESH materialized view (%s)"
};
static const _error _error_OB_ERR_CLIENT_LOCAL_FILES_DISABLED = {
      .error_name            = "OB_ERR_CLIENT_LOCAL_FILES_DISABLED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CLIENT_LOCAL_FILES_DISABLED,
      .sqlstate              = "42000",
      .str_error             = "Loading local data is disabled; this must be enabled on both the client and server sides",
      .str_user_error        = "Loading local data is disabled; this must be enabled on both the client and server sides",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -9762, Loading local data is disabled; this must be enabled on both the client and server sides",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -9762, Loading local data is disabled; this must be enabled on both the client and server sides"
};
static const _error _error_OB_ERR_OUT_PARAM_NOT_BIND_VAR = {
      .error_name            = "OB_ERR_OUT_PARAM_NOT_BIND_VAR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "output parameter not a bind variable",
      .str_user_error        = "output parameter not a bind variable",
      .oracle_errno          = 6577,
      .oracle_str_error      = "ORA-06577: output parameter not a bind variable",
      .oracle_str_user_error = "ORA-06577: output parameter not a bind variable"
};
static const _error _error_OB_ERR_TIME_EARLIER_THAN_SYSDATE = {
      .error_name            = "OB_ERR_TIME_EARLIER_THAN_SYSDATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "the parameter must evaluate to a time in the future",
      .str_user_error        = "the parameter %s must evaluate to a time in the future",
      .oracle_errno          = 23420,
      .oracle_str_error      = "ORA-23420: the parameter must evaluate to a time in the future",
      .oracle_str_user_error = "ORA-23420: the parameter %s must evaluate to a time in the future"
};
static const _error _error_OB_ERR_NOT_FUNC_NAME = {
      .error_name            = "OB_ERR_NOT_FUNC_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "object 'string' must be of type function or array to be used this way",
      .str_user_error        = "object '%.*s' must be of type function or array to be used this way",
      .oracle_errno          = 224,
      .oracle_str_error      = "PLS-00224: object 'string' must be of type function or array to be used this way",
      .oracle_str_user_error = "PLS-00224: object '%.*s' must be of type function or array to be used this way"
};
static const _error _error_OB_ERR_KV_GLOBAL_INDEX_ROUTE = {
      .error_name            = "OB_ERR_KV_GLOBAL_INDEX_ROUTE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "incorrect route for obkv global index, client router should refresh.",
      .str_user_error        = "incorrect route for obkv global index, client router should refresh.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -10500, incorrect route for obkv global index, client router should refresh.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -10500, incorrect route for obkv global index, client router should refresh."
};
static const _error _error_OB_TTL_NOT_ENABLE = {
      .error_name            = "OB_TTL_NOT_ENABLE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "TTL feature is not enabled",
      .str_user_error        = "TTL feature is not enabled",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -10501, TTL feature is not enabled",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -10501, TTL feature is not enabled"
};
static const _error _error_OB_TTL_COLUMN_NOT_EXIST = {
      .error_name            = "OB_TTL_COLUMN_NOT_EXIST",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "TTL column not exists",
      .str_user_error        = "TTL column '%.*s' not exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -10502, TTL column not exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -10502, TTL column '%.*s' not exists"
};
static const _error _error_OB_TTL_COLUMN_TYPE_NOT_SUPPORTED = {
      .error_name            = "OB_TTL_COLUMN_TYPE_NOT_SUPPORTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Column type is not supported in TTL definition",
      .str_user_error        = "Column type of '%.*s' is not supported for TTL definition",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -10503, Column type is not supported in TTL definition",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -10503, Column type of '%.*s' is not supported for TTL definition"
};
static const _error _error_OB_TTL_CMD_NOT_ALLOWED = {
      .error_name            = "OB_TTL_CMD_NOT_ALLOWED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "TTL command is not allowed",
      .str_user_error        = "TTL command is not allowed, current TTL status is '%s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -10504, TTL command is not allowed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -10504, TTL command is not allowed, current TTL status is '%s'"
};
static const _error _error_OB_TTL_NO_TASK_RUNNING = {
      .error_name            = "OB_TTL_NO_TASK_RUNNING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "No TTL task is running, please try trigger a new TTL task",
      .str_user_error        = "No TTL task is running, please try trigger a new TTL task",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -10505, No TTL task is running, please try trigger a new TTL task",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -10505, No TTL task is running, please try trigger a new TTL task"
};
static const _error _error_OB_TTL_TENANT_IS_RESTORE = {
      .error_name            = "OB_TTL_TENANT_IS_RESTORE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Cannot execute TTL task during tenant is restore",
      .str_user_error        = "Cannot execute TTL task during tenant is restore",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -10506, Cannot execute TTL task during tenant is restore",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -10506, Cannot execute TTL task during tenant is restore"
};
static const _error _error_OB_TTL_INVALID_HBASE_TTL = {
      .error_name            = "OB_TTL_INVALID_HBASE_TTL",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Time to live of hbase table must be greater than 0",
      .str_user_error        = "Time to live of hbase table must be greater than 0",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -10507, Time to live of hbase table must be greater than 0",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -10507, Time to live of hbase table must be greater than 0"
};
static const _error _error_OB_TTL_INVALID_HBASE_MAXVERSIONS = {
      .error_name            = "OB_TTL_INVALID_HBASE_MAXVERSIONS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "MaxVersions of hbase table must be greater than 0",
      .str_user_error        = "MaxVersions of hbase table must be greater than 0",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -10508, MaxVersions of hbase table must be greater than 0",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -10508, MaxVersions of hbase table must be greater than 0"
};
static const _error _error_OB_KV_CREDENTIAL_NOT_MATCH = {
      .error_name            = "OB_KV_CREDENTIAL_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "OBKV credential not match",
      .str_user_error        = "Access denied, credential '%.*s' not match '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -10509, OBKV credential not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -10509, Access denied, credential '%.*s' not match '%.*s'"
};
static const _error _error_OB_KV_ROWKEY_COUNT_NOT_MATCH = {
      .error_name            = "OB_KV_ROWKEY_COUNT_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "OBKV rowkey column count not match",
      .str_user_error        = "Rowkey column count not match, schema rowkey count is '%ld', input rowkey count is '%ld'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -10510, OBKV rowkey column count not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -10510, Rowkey column count not match, schema rowkey count is '%ld', input rowkey count is '%ld'"
};
static const _error _error_OB_KV_COLUMN_TYPE_NOT_MATCH = {
      .error_name            = "OB_KV_COLUMN_TYPE_NOT_MATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "OBKV column type not match",
      .str_user_error        = "Column type for '%.*s' not match, schema column type is '%.*s', input column type is '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -10511, OBKV column type not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -10511, Column type for '%.*s' not match, schema column type is '%.*s', input column type is '%.*s'"
};
static const _error _error_OB_KV_COLLATION_MISMATCH = {
      .error_name            = "OB_KV_COLLATION_MISMATCH",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "OBKV collation type not match",
      .str_user_error        = "Collation type for '%.*s' not match, schema collation type is '%.*s', input collation type is '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -10512, OBKV collation type not match",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -10512, Collation type for '%.*s' not match, schema collation type is '%.*s', input collation type is '%.*s'"
};
static const _error _error_OB_KV_SCAN_RANGE_MISSING = {
      .error_name            = "OB_KV_SCAN_RANGE_MISSING",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "OBKV scan range missing",
      .str_user_error        = "Scan range missing, input scan range cell count is '%ld', which should equal to rowkey count '%ld'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -10513, OBKV scan range missing",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -10513, Scan range missing, input scan range cell count is '%ld', which should equal to rowkey count '%ld'"
};
static const _error _error_OB_KV_ODP_TIMEOUT = {
      .error_name            = "OB_KV_ODP_TIMEOUT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "ODP process timeout",
      .str_user_error        = "ODP process timeout",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -10650, ODP process timeout",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -10650, ODP process timeout"
};
static const _error _error_OB_ERR_VALUES_CLAUSE_NEED_HAVE_COLUMN = {
      .error_name            = "OB_ERR_VALUES_CLAUSE_NEED_HAVE_COLUMN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_VALUES_CLAUSE_NEED_HAVE_COLUMN,
      .sqlstate              = "HY000",
      .str_error             = "Each row of a VALUES clause must have at least one column, unless when used as source in an INSERT statement.",
      .str_user_error        = "Each row of a VALUES clause must have at least one column, unless when used as source in an INSERT statement.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -11000, Each row of a VALUES clause must have at least one column, unless when used as source in an INSERT statement.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -11000, Each row of a VALUES clause must have at least one column, unless when used as source in an INSERT statement."
};
static const _error _error_OB_ERR_VALUES_CLAUSE_CANNOT_USE_DEFAULT_VALUES = {
      .error_name            = "OB_ERR_VALUES_CLAUSE_CANNOT_USE_DEFAULT_VALUES",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_VALUES_CLAUSE_CANNOT_USE_DEFAULT_VALUES,
      .sqlstate              = "HY000",
      .str_error             = "A VALUES clause cannot use DEFAULT values, unless used as a source in an INSERT statement.",
      .str_user_error        = "A VALUES clause cannot use DEFAULT values, unless used as a source in an INSERT statement.",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -11001, A VALUES clause cannot use DEFAULT values, unless used as a source in an INSERT statement.",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -11001, A VALUES clause cannot use DEFAULT values, unless used as a source in an INSERT statement."
};
static const _error _error_OB_WRONG_PARTITION_NAME = {
      .error_name            = "OB_WRONG_PARTITION_NAME",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_WRONG_PARTITION_NAME,
      .sqlstate              = "HY000",
      .str_error             = "Incorrect partition name",
      .str_user_error        = "Incorrect partition name '%.*s'",
      .oracle_errno          = 20000,
      .oracle_str_error      = "ORA-20000: invalid partition name",
      .oracle_str_user_error = "ORA-20000: '%.*s' invalid partition name"
};
static const _error _error_OB_ERR_PLUGIN_IS_NOT_LOADED = {
      .error_name            = "OB_ERR_PLUGIN_IS_NOT_LOADED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_PLUGIN_IS_NOT_LOADED,
      .sqlstate              = "HY000",
      .str_error             = "Plugin is not loaded",
      .str_user_error        = "Plugin '%.*s' is not loaded",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -11003, Plugin is not loaded",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -11003, Plugin '%.*s' is not loaded"
};
static const _error _error_OB_EST_DEVIA_TOO_LARGE = {
      .error_name            = "OB_EST_DEVIA_TOO_LARGE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Optimizer estimate deviation is too large",
      .str_user_error        = "Optimizer estimate deviation is too large 'Operator: %d.%.*s EST:%.ld -> REAL:%ld'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -11004, Optimizer estimate deviation is too large",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -11004, Optimizer estimate deviation is too large 'Operator: %d.%.*s EST:%.ld -> REAL:%ld'"
};
static const _error _error_OB_ERR_HAS_TYPE_OR_TABLE_DEPENDENT = {
      .error_name            = "OB_ERR_HAS_TYPE_OR_TABLE_DEPENDENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot drop or replace a type with type or table dependents",
      .str_user_error        = "cannot drop or replace a type with type or table dependents",
      .oracle_errno          = 2303,
      .oracle_str_error      = "ORA-02303: cannot drop or replace a type with type or table dependents",
      .oracle_str_user_error = "ORA-02303: cannot drop or replace a type with type or table dependents"
};
static const _error _error_OB_ERR_REPLACE_TYPE_WITH_TABLE_DEPENDENT = {
      .error_name            = "OB_ERR_REPLACE_TYPE_WITH_TABLE_DEPENDENT",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "cannot replace a type with table dependents",
      .str_user_error        = "cannot replace a type with table dependents",
      .oracle_errno          = 22866,
      .oracle_str_error      = "ORA-22866: cannot replace a type with table dependents",
      .oracle_str_user_error = "ORA-22866: cannot replace a type with table dependents"
};
static const _error _error_OB_ERR_UNKNOWN_AUTHID = {
      .error_name            = "OB_ERR_UNKNOWN_AUTHID",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_UNKNOWN_AUTHID,
      .sqlstate              = "HY000",
      .str_error             = "Unknown authorization ID",
      .str_user_error        = "Unknown authorization ID `%.*s`@`%.*s`",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -11007, Unknown authorization ID",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -11007, Unknown authorization ID `%.*s`@`%.*s`"
};
static const _error _error_OB_ERR_NO_GRANT_DEFINED_FOR_USER = {
      .error_name            = "OB_ERR_NO_GRANT_DEFINED_FOR_USER",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_NONEXISTING_GRANT,
      .sqlstate              = "42000",
      .str_error             = "There is no such grant defined for user",
      .str_user_error        = "There is no such grant defined for user '%.*s' on host '%.*s'",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -11008, There is no such grant defined for user",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -11008, There is no such grant defined for user '%.*s' on host '%.*s'"
};
static const _error _error_OB_ERR_USER_ALREADY_EXISTS = {
      .error_name            = "OB_ERR_USER_ALREADY_EXISTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_USER_ALREADY_EXISTS,
      .sqlstate              = "HY000",
      .str_error             = "Authorization ID already exists",
      .str_user_error        = "Authorization ID '%.*s'@'%.*s' already exists",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -11009, Authorization ID already exists",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -11009, Authorization ID '%.*s'@'%.*s' already exists"
};
static const _error _error_OB_ERR_ARGUMENT_SHOULD_CONSTANT_OR_GROUP_EXPR = {
      .error_name            = "OB_ERR_ARGUMENT_SHOULD_CONSTANT_OR_GROUP_EXPR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Argument should be a constant or a function of expressions in GROUP BY.",
      .str_user_error        = "Argument should be a constant or a function of expressions in GROUP BY.",
      .oracle_errno          = 30497,
      .oracle_str_error      = "ORA-30497: Argument should be a constant or a function of expressions in GROUP BY.",
      .oracle_str_user_error = "ORA-30497: Argument should be a constant or a function of expressions in GROUP BY."
};
static const _error _error_OB_ERR_QUERY_RANGE_MEMORY_EXHAUSTED = {
      .error_name            = "OB_ERR_QUERY_RANGE_MEMORY_EXHAUSTED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "query range memory exhausted",
      .str_user_error        = "query range memory exhausted",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -11011, query range memory exhausted",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -11011, query range memory exhausted"
};
static const _error _error_OB_CANNOT_USER_IF_EXISTS = {
      .error_name            = "OB_CANNOT_USER_IF_EXISTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_CANNOT_USER_IF_EXISTS,
      .sqlstate              = "HY000",
      .str_error             = "User operation failed",
      .str_user_error        = "User %.*s does not exist",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -11012, User operation failed",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -11012, User %.*s does not exist"
};
static const _error _error_OB_ERR_ILLEGAL_USER_VAR = {
      .error_name            = "OB_ERR_ILLEGAL_USER_VAR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_ILLEGAL_USER_VAR,
      .sqlstate              = "42000",
      .str_error             = "User variable name is illegal",
      .str_user_error        = "User variable name %.*s is illegal",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -11013, User variable name is illegal",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -11013, User variable name %.*s is illegal"
};
static const _error _error_OB_ERR_FT_COLUMN_NOT_INDEXED = {
      .error_name            = "OB_ERR_FT_COLUMN_NOT_INDEXED",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = ER_FT_MATCHING_KEY_NOT_FOUND,
      .sqlstate              = "HY000",
      .str_error             = "Can't find FULLTEXT index matching the column list",
      .str_user_error        = "Can't find FULLTEXT index matching the column list",
      .oracle_errno          = 600,
      .oracle_str_error      = "ORA-00600: internal error code, arguments: -11014, Can't find FULLTEXT index matching the column list",
      .oracle_str_user_error = "ORA-00600: internal error code, arguments: -11014, Can't find FULLTEXT index matching the column list"
};
static const _error _error_OB_SP_RAISE_APPLICATION_ERROR = {
      .error_name            = "OB_SP_RAISE_APPLICATION_ERROR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "The stored procedure 'raise_application_error' was called which causes this error to be generated",
      .str_user_error        = "%.*s",
      .oracle_errno          = 20000,
      .oracle_str_error      = "ORA-20000: The stored procedure 'raise_application_error' was called which causes this error to be generated",
      .oracle_str_user_error = "ORA%06ld: %.*s"
};
static const _error _error_OB_SP_RAISE_APPLICATION_ERROR_NUM = {
      .error_name            = "OB_SP_RAISE_APPLICATION_ERROR_NUM",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "error number argument to raise_application_error of stringstring is out of range",
      .str_user_error        = "error number argument to raise_application_error of '%d' is out of range",
      .oracle_errno          = 21000,
      .oracle_str_error      = "ORA-21000: error number argument to raise_application_error of stringstring is out of range",
      .oracle_str_user_error = "ORA-21000: error number argument to raise_application_error of '%d' is out of range"
};
static const _error _error_OB_CLOB_ONLY_SUPPORT_WITH_MULTIBYTE_FUN = {
      .error_name            = "OB_CLOB_ONLY_SUPPORT_WITH_MULTIBYTE_FUN",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "CLOB or NCLOB in multibyte character set not supported",
      .str_user_error        = "CLOB or NCLOB in multibyte character set not supported",
      .oracle_errno          = 22998,
      .oracle_str_error      = "ORA-22998: CLOB or NCLOB in multibyte character set not supported",
      .oracle_str_user_error = "ORA-22998: CLOB or NCLOB in multibyte character set not supported"
};
static const _error _error_OB_ERR_UPDATE_TWICE = {
      .error_name            = "OB_ERR_UPDATE_TWICE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "unable to get a stable set of rows in the source tables",
      .str_user_error        = "unable to get a stable set of rows in the source tables",
      .oracle_errno          = 30926,
      .oracle_str_error      = "ORA-30926: unable to get a stable set of rows in the source tables",
      .oracle_str_user_error = "ORA-30926: unable to get a stable set of rows in the source tables"
};
static const _error _error_OB_ERR_FLASHBACK_QUERY_WITH_UPDATE = {
      .error_name            = "OB_ERR_FLASHBACK_QUERY_WITH_UPDATE",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "snapshot expression not allowed here",
      .str_user_error        = "snapshot expression not allowed here",
      .oracle_errno          = 8187,
      .oracle_str_error      = "ORA-08187: snapshot expression not allowed here",
      .oracle_str_user_error = "ORA-08187: snapshot expression not allowed here"
};
static const _error _error_OB_ERR_UPDATE_ON_EXPR = {
      .error_name            = "OB_ERR_UPDATE_ON_EXPR",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "Columns referenced in the ON Clause cannot be updated",
      .str_user_error        = "Columns referenced in the ON Clause cannot be updated:'%.*s'.'%.*s'",
      .oracle_errno          = 38104,
      .oracle_str_error      = "ORA-38104: Columns referenced in the ON Clause cannot be updated",
      .oracle_str_user_error = "ORA-38104: Columns referenced in the ON Clause cannot be updated:'%.*s'.'%.*s'"
};
static const _error _error_OB_ERR_SPECIFIED_ROW_NO_LONGER_EXISTS = {
      .error_name            = "OB_ERR_SPECIFIED_ROW_NO_LONGER_EXISTS",
      .error_cause           = "Internal Error",
      .error_solution        = "Contact OceanBase Support",
      .mysql_errno           = -1,
      .sqlstate              = "HY000",
      .str_error             = "specified row no longer exists",
      .str_user_error        = "specified row no longer exists",
      .oracle_errno          = 8006,
      .oracle_str_error      = "ORA-08006: specified row no longer exists",
      .oracle_str_user_error = "ORA-08006: specified row no longer exists"
};

struct ObStrErrorInit
{
  ObStrErrorInit()
  {
    memset(&_error_default, 0, sizeof  _error_default);
    for (int i = 0; i < OB_MAX_ERROR_CODE; ++i) {
      _errors[i] = &_error_default;
    }
    _errors[-OB_ERROR] = &_error_OB_ERROR;
    _errors[-OB_OBJ_TYPE_ERROR] = &_error_OB_OBJ_TYPE_ERROR;
    _errors[-OB_INVALID_ARGUMENT] = &_error_OB_INVALID_ARGUMENT;
    _errors[-OB_ARRAY_OUT_OF_RANGE] = &_error_OB_ARRAY_OUT_OF_RANGE;
    _errors[-OB_SERVER_LISTEN_ERROR] = &_error_OB_SERVER_LISTEN_ERROR;
    _errors[-OB_INIT_TWICE] = &_error_OB_INIT_TWICE;
    _errors[-OB_NOT_INIT] = &_error_OB_NOT_INIT;
    _errors[-OB_NOT_SUPPORTED] = &_error_OB_NOT_SUPPORTED;
    _errors[-OB_ITER_END] = &_error_OB_ITER_END;
    _errors[-OB_IO_ERROR] = &_error_OB_IO_ERROR;
    _errors[-OB_ERROR_FUNC_VERSION] = &_error_OB_ERROR_FUNC_VERSION;
    _errors[-OB_PACKET_NOT_SENT] = &_error_OB_PACKET_NOT_SENT;
    _errors[-OB_TIMEOUT] = &_error_OB_TIMEOUT;
    _errors[-OB_ALLOCATE_MEMORY_FAILED] = &_error_OB_ALLOCATE_MEMORY_FAILED;
    _errors[-OB_INNER_STAT_ERROR] = &_error_OB_INNER_STAT_ERROR;
    _errors[-OB_ERR_SYS] = &_error_OB_ERR_SYS;
    _errors[-OB_ERR_UNEXPECTED] = &_error_OB_ERR_UNEXPECTED;
    _errors[-OB_ENTRY_EXIST] = &_error_OB_ENTRY_EXIST;
    _errors[-OB_ENTRY_NOT_EXIST] = &_error_OB_ENTRY_NOT_EXIST;
    _errors[-OB_SIZE_OVERFLOW] = &_error_OB_SIZE_OVERFLOW;
    _errors[-OB_REF_NUM_NOT_ZERO] = &_error_OB_REF_NUM_NOT_ZERO;
    _errors[-OB_CONFLICT_VALUE] = &_error_OB_CONFLICT_VALUE;
    _errors[-OB_ITEM_NOT_SETTED] = &_error_OB_ITEM_NOT_SETTED;
    _errors[-OB_EAGAIN] = &_error_OB_EAGAIN;
    _errors[-OB_BUF_NOT_ENOUGH] = &_error_OB_BUF_NOT_ENOUGH;
    _errors[-OB_PARTIAL_FAILED] = &_error_OB_PARTIAL_FAILED;
    _errors[-OB_READ_NOTHING] = &_error_OB_READ_NOTHING;
    _errors[-OB_FILE_NOT_EXIST] = &_error_OB_FILE_NOT_EXIST;
    _errors[-OB_DISCONTINUOUS_LOG] = &_error_OB_DISCONTINUOUS_LOG;
    _errors[-OB_SCHEMA_ERROR] = &_error_OB_SCHEMA_ERROR;
    _errors[-OB_TENANT_OUT_OF_MEM] = &_error_OB_TENANT_OUT_OF_MEM;
    _errors[-OB_UNKNOWN_OBJ] = &_error_OB_UNKNOWN_OBJ;
    _errors[-OB_NO_MONITOR_DATA] = &_error_OB_NO_MONITOR_DATA;
    _errors[-OB_SERIALIZE_ERROR] = &_error_OB_SERIALIZE_ERROR;
    _errors[-OB_DESERIALIZE_ERROR] = &_error_OB_DESERIALIZE_ERROR;
    _errors[-OB_AIO_TIMEOUT] = &_error_OB_AIO_TIMEOUT;
    _errors[-OB_NEED_RETRY] = &_error_OB_NEED_RETRY;
    _errors[-OB_TOO_MANY_SSTABLE] = &_error_OB_TOO_MANY_SSTABLE;
    _errors[-OB_NOT_MASTER] = &_error_OB_NOT_MASTER;
    _errors[-OB_KILLED_BY_THROTTLING] = &_error_OB_KILLED_BY_THROTTLING;
    _errors[-OB_DECRYPT_FAILED] = &_error_OB_DECRYPT_FAILED;
    _errors[-OB_USER_NOT_EXIST] = &_error_OB_USER_NOT_EXIST;
    _errors[-OB_PASSWORD_WRONG] = &_error_OB_PASSWORD_WRONG;
    _errors[-OB_SKEY_VERSION_WRONG] = &_error_OB_SKEY_VERSION_WRONG;
    _errors[-OB_PUSHDOWN_STATUS_CHANGED] = &_error_OB_PUSHDOWN_STATUS_CHANGED;
    _errors[-OB_STORAGE_SCHEMA_INVALID] = &_error_OB_STORAGE_SCHEMA_INVALID;
    _errors[-OB_MEDIUM_COMPACTION_INFO_INVALID] = &_error_OB_MEDIUM_COMPACTION_INFO_INVALID;
    _errors[-OB_NOT_REGISTERED] = &_error_OB_NOT_REGISTERED;
    _errors[-OB_WAITQUEUE_TIMEOUT] = &_error_OB_WAITQUEUE_TIMEOUT;
    _errors[-OB_NOT_THE_OBJECT] = &_error_OB_NOT_THE_OBJECT;
    _errors[-OB_ALREADY_REGISTERED] = &_error_OB_ALREADY_REGISTERED;
    _errors[-OB_LAST_LOG_RUINNED] = &_error_OB_LAST_LOG_RUINNED;
    _errors[-OB_NO_CS_SELECTED] = &_error_OB_NO_CS_SELECTED;
    _errors[-OB_NO_TABLETS_CREATED] = &_error_OB_NO_TABLETS_CREATED;
    _errors[-OB_INVALID_ERROR] = &_error_OB_INVALID_ERROR;
    _errors[-OB_DECIMAL_OVERFLOW_WARN] = &_error_OB_DECIMAL_OVERFLOW_WARN;
    _errors[-OB_DECIMAL_UNLEGAL_ERROR] = &_error_OB_DECIMAL_UNLEGAL_ERROR;
    _errors[-OB_OBJ_DIVIDE_ERROR] = &_error_OB_OBJ_DIVIDE_ERROR;
    _errors[-OB_NOT_A_DECIMAL] = &_error_OB_NOT_A_DECIMAL;
    _errors[-OB_DECIMAL_PRECISION_NOT_EQUAL] = &_error_OB_DECIMAL_PRECISION_NOT_EQUAL;
    _errors[-OB_EMPTY_RANGE] = &_error_OB_EMPTY_RANGE;
    _errors[-OB_SESSION_KILLED] = &_error_OB_SESSION_KILLED;
    _errors[-OB_LOG_NOT_SYNC] = &_error_OB_LOG_NOT_SYNC;
    _errors[-OB_DIR_NOT_EXIST] = &_error_OB_DIR_NOT_EXIST;
    _errors[-OB_SESSION_NOT_FOUND] = &_error_OB_SESSION_NOT_FOUND;
    _errors[-OB_INVALID_LOG] = &_error_OB_INVALID_LOG;
    _errors[-OB_INVALID_DATA] = &_error_OB_INVALID_DATA;
    _errors[-OB_ALREADY_DONE] = &_error_OB_ALREADY_DONE;
    _errors[-OB_CANCELED] = &_error_OB_CANCELED;
    _errors[-OB_LOG_SRC_CHANGED] = &_error_OB_LOG_SRC_CHANGED;
    _errors[-OB_LOG_NOT_ALIGN] = &_error_OB_LOG_NOT_ALIGN;
    _errors[-OB_LOG_MISSING] = &_error_OB_LOG_MISSING;
    _errors[-OB_NEED_WAIT] = &_error_OB_NEED_WAIT;
    _errors[-OB_NOT_IMPLEMENT] = &_error_OB_NOT_IMPLEMENT;
    _errors[-OB_DIVISION_BY_ZERO] = &_error_OB_DIVISION_BY_ZERO;
    _errors[-OB_EXCEED_MEM_LIMIT] = &_error_OB_EXCEED_MEM_LIMIT;
    _errors[-OB_RESULT_UNKNOWN] = &_error_OB_RESULT_UNKNOWN;
    _errors[-OB_NO_RESULT] = &_error_OB_NO_RESULT;
    _errors[-OB_QUEUE_OVERFLOW] = &_error_OB_QUEUE_OVERFLOW;
    _errors[-OB_LOG_ID_RANGE_NOT_CONTINUOUS] = &_error_OB_LOG_ID_RANGE_NOT_CONTINUOUS;
    _errors[-OB_TERM_LAGGED] = &_error_OB_TERM_LAGGED;
    _errors[-OB_TERM_NOT_MATCH] = &_error_OB_TERM_NOT_MATCH;
    _errors[-OB_START_LOG_CURSOR_INVALID] = &_error_OB_START_LOG_CURSOR_INVALID;
    _errors[-OB_LOCK_NOT_MATCH] = &_error_OB_LOCK_NOT_MATCH;
    _errors[-OB_DEAD_LOCK] = &_error_OB_DEAD_LOCK;
    _errors[-OB_PARTIAL_LOG] = &_error_OB_PARTIAL_LOG;
    _errors[-OB_CHECKSUM_ERROR] = &_error_OB_CHECKSUM_ERROR;
    _errors[-OB_INIT_FAIL] = &_error_OB_INIT_FAIL;
    _errors[-OB_ROWKEY_ORDER_ERROR] = &_error_OB_ROWKEY_ORDER_ERROR;
    _errors[-OB_NOT_ENOUGH_STORE] = &_error_OB_NOT_ENOUGH_STORE;
    _errors[-OB_BLOCK_SWITCHED] = &_error_OB_BLOCK_SWITCHED;
    _errors[-OB_PHYSIC_CHECKSUM_ERROR] = &_error_OB_PHYSIC_CHECKSUM_ERROR;
    _errors[-OB_STATE_NOT_MATCH] = &_error_OB_STATE_NOT_MATCH;
    _errors[-OB_READ_ZERO_LOG] = &_error_OB_READ_ZERO_LOG;
    _errors[-OB_BLOCK_NEED_FREEZE] = &_error_OB_BLOCK_NEED_FREEZE;
    _errors[-OB_BLOCK_FROZEN] = &_error_OB_BLOCK_FROZEN;
    _errors[-OB_IN_FATAL_STATE] = &_error_OB_IN_FATAL_STATE;
    _errors[-OB_IN_STOP_STATE] = &_error_OB_IN_STOP_STATE;
    _errors[-OB_UPS_MASTER_EXISTS] = &_error_OB_UPS_MASTER_EXISTS;
    _errors[-OB_LOG_NOT_CLEAR] = &_error_OB_LOG_NOT_CLEAR;
    _errors[-OB_FILE_ALREADY_EXIST] = &_error_OB_FILE_ALREADY_EXIST;
    _errors[-OB_UNKNOWN_PACKET] = &_error_OB_UNKNOWN_PACKET;
    _errors[-OB_RPC_PACKET_TOO_LONG] = &_error_OB_RPC_PACKET_TOO_LONG;
    _errors[-OB_LOG_TOO_LARGE] = &_error_OB_LOG_TOO_LARGE;
    _errors[-OB_RPC_SEND_ERROR] = &_error_OB_RPC_SEND_ERROR;
    _errors[-OB_RPC_POST_ERROR] = &_error_OB_RPC_POST_ERROR;
    _errors[-OB_LIBEASY_ERROR] = &_error_OB_LIBEASY_ERROR;
    _errors[-OB_CONNECT_ERROR] = &_error_OB_CONNECT_ERROR;
    _errors[-OB_NOT_FREE] = &_error_OB_NOT_FREE;
    _errors[-OB_INIT_SQL_CONTEXT_ERROR] = &_error_OB_INIT_SQL_CONTEXT_ERROR;
    _errors[-OB_SKIP_INVALID_ROW] = &_error_OB_SKIP_INVALID_ROW;
    _errors[-OB_RPC_PACKET_INVALID] = &_error_OB_RPC_PACKET_INVALID;
    _errors[-OB_NO_TABLET] = &_error_OB_NO_TABLET;
    _errors[-OB_SNAPSHOT_DISCARDED] = &_error_OB_SNAPSHOT_DISCARDED;
    _errors[-OB_DATA_NOT_UPTODATE] = &_error_OB_DATA_NOT_UPTODATE;
    _errors[-OB_ROW_MODIFIED] = &_error_OB_ROW_MODIFIED;
    _errors[-OB_VERSION_NOT_MATCH] = &_error_OB_VERSION_NOT_MATCH;
    _errors[-OB_BAD_ADDRESS] = &_error_OB_BAD_ADDRESS;
    _errors[-OB_ENQUEUE_FAILED] = &_error_OB_ENQUEUE_FAILED;
    _errors[-OB_INVALID_CONFIG] = &_error_OB_INVALID_CONFIG;
    _errors[-OB_STMT_EXPIRED] = &_error_OB_STMT_EXPIRED;
    _errors[-OB_ERR_MIN_VALUE] = &_error_OB_ERR_MIN_VALUE;
    _errors[-OB_ERR_MAX_VALUE] = &_error_OB_ERR_MAX_VALUE;
    _errors[-OB_ERR_NULL_VALUE] = &_error_OB_ERR_NULL_VALUE;
    _errors[-OB_RESOURCE_OUT] = &_error_OB_RESOURCE_OUT;
    _errors[-OB_ERR_SQL_CLIENT] = &_error_OB_ERR_SQL_CLIENT;
    _errors[-OB_META_TABLE_WITHOUT_USE_TABLE] = &_error_OB_META_TABLE_WITHOUT_USE_TABLE;
    _errors[-OB_DISCARD_PACKET] = &_error_OB_DISCARD_PACKET;
    _errors[-OB_OPERATE_OVERFLOW] = &_error_OB_OPERATE_OVERFLOW;
    _errors[-OB_INVALID_DATE_FORMAT] = &_error_OB_INVALID_DATE_FORMAT;
    _errors[-OB_POOL_REGISTERED_FAILED] = &_error_OB_POOL_REGISTERED_FAILED;
    _errors[-OB_POOL_UNREGISTERED_FAILED] = &_error_OB_POOL_UNREGISTERED_FAILED;
    _errors[-OB_INVALID_ARGUMENT_NUM] = &_error_OB_INVALID_ARGUMENT_NUM;
    _errors[-OB_LEASE_NOT_ENOUGH] = &_error_OB_LEASE_NOT_ENOUGH;
    _errors[-OB_LEASE_NOT_MATCH] = &_error_OB_LEASE_NOT_MATCH;
    _errors[-OB_UPS_SWITCH_NOT_HAPPEN] = &_error_OB_UPS_SWITCH_NOT_HAPPEN;
    _errors[-OB_EMPTY_RESULT] = &_error_OB_EMPTY_RESULT;
    _errors[-OB_CACHE_NOT_HIT] = &_error_OB_CACHE_NOT_HIT;
    _errors[-OB_NESTED_LOOP_NOT_SUPPORT] = &_error_OB_NESTED_LOOP_NOT_SUPPORT;
    _errors[-OB_LOG_INVALID_MOD_ID] = &_error_OB_LOG_INVALID_MOD_ID;
    _errors[-OB_LOG_MODULE_UNKNOWN] = &_error_OB_LOG_MODULE_UNKNOWN;
    _errors[-OB_LOG_LEVEL_INVALID] = &_error_OB_LOG_LEVEL_INVALID;
    _errors[-OB_LOG_PARSER_SYNTAX_ERR] = &_error_OB_LOG_PARSER_SYNTAX_ERR;
    _errors[-OB_INDEX_OUT_OF_RANGE] = &_error_OB_INDEX_OUT_OF_RANGE;
    _errors[-OB_INT_UNDERFLOW] = &_error_OB_INT_UNDERFLOW;
    _errors[-OB_UNKNOWN_CONNECTION] = &_error_OB_UNKNOWN_CONNECTION;
    _errors[-OB_ERROR_OUT_OF_RANGE] = &_error_OB_ERROR_OUT_OF_RANGE;
    _errors[-OB_CACHE_SHRINK_FAILED] = &_error_OB_CACHE_SHRINK_FAILED;
    _errors[-OB_OLD_SCHEMA_VERSION] = &_error_OB_OLD_SCHEMA_VERSION;
    _errors[-OB_RELEASE_SCHEMA_ERROR] = &_error_OB_RELEASE_SCHEMA_ERROR;
    _errors[-OB_OP_NOT_ALLOW] = &_error_OB_OP_NOT_ALLOW;
    _errors[-OB_NO_EMPTY_ENTRY] = &_error_OB_NO_EMPTY_ENTRY;
    _errors[-OB_ERR_ALREADY_EXISTS] = &_error_OB_ERR_ALREADY_EXISTS;
    _errors[-OB_SEARCH_NOT_FOUND] = &_error_OB_SEARCH_NOT_FOUND;
    _errors[-OB_BEYOND_THE_RANGE] = &_error_OB_BEYOND_THE_RANGE;
    _errors[-OB_SERVER_OUTOF_DISK_SPACE] = &_error_OB_SERVER_OUTOF_DISK_SPACE;
    _errors[-OB_COLUMN_GROUP_NOT_FOUND] = &_error_OB_COLUMN_GROUP_NOT_FOUND;
    _errors[-OB_CS_COMPRESS_LIB_ERROR] = &_error_OB_CS_COMPRESS_LIB_ERROR;
    _errors[-OB_ITEM_NOT_MATCH] = &_error_OB_ITEM_NOT_MATCH;
    _errors[-OB_SCHEDULER_TASK_CNT_MISMATCH] = &_error_OB_SCHEDULER_TASK_CNT_MISMATCH;
    _errors[-OB_INVALID_MACRO_BLOCK_TYPE] = &_error_OB_INVALID_MACRO_BLOCK_TYPE;
    _errors[-OB_INVALID_DATE_FORMAT_END] = &_error_OB_INVALID_DATE_FORMAT_END;
    _errors[-OB_PG_IS_REMOVED] = &_error_OB_PG_IS_REMOVED;
    _errors[-OB_DDL_TASK_EXECUTE_TOO_MUCH_TIME] = &_error_OB_DDL_TASK_EXECUTE_TOO_MUCH_TIME;
    _errors[-OB_HASH_EXIST] = &_error_OB_HASH_EXIST;
    _errors[-OB_HASH_NOT_EXIST] = &_error_OB_HASH_NOT_EXIST;
    _errors[-OB_HASH_GET_TIMEOUT] = &_error_OB_HASH_GET_TIMEOUT;
    _errors[-OB_HASH_PLACEMENT_RETRY] = &_error_OB_HASH_PLACEMENT_RETRY;
    _errors[-OB_HASH_FULL] = &_error_OB_HASH_FULL;
    _errors[-OB_PACKET_PROCESSED] = &_error_OB_PACKET_PROCESSED;
    _errors[-OB_WAIT_NEXT_TIMEOUT] = &_error_OB_WAIT_NEXT_TIMEOUT;
    _errors[-OB_LEADER_NOT_EXIST] = &_error_OB_LEADER_NOT_EXIST;
    _errors[-OB_PREPARE_MAJOR_FREEZE_FAILED] = &_error_OB_PREPARE_MAJOR_FREEZE_FAILED;
    _errors[-OB_COMMIT_MAJOR_FREEZE_FAILED] = &_error_OB_COMMIT_MAJOR_FREEZE_FAILED;
    _errors[-OB_ABORT_MAJOR_FREEZE_FAILED] = &_error_OB_ABORT_MAJOR_FREEZE_FAILED;
    _errors[-OB_MAJOR_FREEZE_NOT_FINISHED] = &_error_OB_MAJOR_FREEZE_NOT_FINISHED;
    _errors[-OB_PARTITION_NOT_LEADER] = &_error_OB_PARTITION_NOT_LEADER;
    _errors[-OB_WAIT_MAJOR_FREEZE_RESPONSE_TIMEOUT] = &_error_OB_WAIT_MAJOR_FREEZE_RESPONSE_TIMEOUT;
    _errors[-OB_CURL_ERROR] = &_error_OB_CURL_ERROR;
    _errors[-OB_MAJOR_FREEZE_NOT_ALLOW] = &_error_OB_MAJOR_FREEZE_NOT_ALLOW;
    _errors[-OB_PREPARE_FREEZE_FAILED] = &_error_OB_PREPARE_FREEZE_FAILED;
    _errors[-OB_INVALID_DATE_VALUE] = &_error_OB_INVALID_DATE_VALUE;
    _errors[-OB_INACTIVE_SQL_CLIENT] = &_error_OB_INACTIVE_SQL_CLIENT;
    _errors[-OB_INACTIVE_RPC_PROXY] = &_error_OB_INACTIVE_RPC_PROXY;
    _errors[-OB_INTERVAL_WITH_MONTH] = &_error_OB_INTERVAL_WITH_MONTH;
    _errors[-OB_TOO_MANY_DATETIME_PARTS] = &_error_OB_TOO_MANY_DATETIME_PARTS;
    _errors[-OB_DATA_OUT_OF_RANGE] = &_error_OB_DATA_OUT_OF_RANGE;
    _errors[-OB_PARTITION_NOT_EXIST] = &_error_OB_PARTITION_NOT_EXIST;
    _errors[-OB_ERR_TRUNCATED_WRONG_VALUE_FOR_FIELD] = &_error_OB_ERR_TRUNCATED_WRONG_VALUE_FOR_FIELD;
    _errors[-OB_ERR_NO_DEFAULT_FOR_FIELD] = &_error_OB_ERR_NO_DEFAULT_FOR_FIELD;
    _errors[-OB_ERR_FIELD_SPECIFIED_TWICE] = &_error_OB_ERR_FIELD_SPECIFIED_TWICE;
    _errors[-OB_ERR_TOO_LONG_TABLE_COMMENT] = &_error_OB_ERR_TOO_LONG_TABLE_COMMENT;
    _errors[-OB_ERR_TOO_LONG_FIELD_COMMENT] = &_error_OB_ERR_TOO_LONG_FIELD_COMMENT;
    _errors[-OB_ERR_TOO_LONG_INDEX_COMMENT] = &_error_OB_ERR_TOO_LONG_INDEX_COMMENT;
    _errors[-OB_NOT_FOLLOWER] = &_error_OB_NOT_FOLLOWER;
    _errors[-OB_ERR_OUT_OF_LOWER_BOUND] = &_error_OB_ERR_OUT_OF_LOWER_BOUND;
    _errors[-OB_ERR_OUT_OF_UPPER_BOUND] = &_error_OB_ERR_OUT_OF_UPPER_BOUND;
    _errors[-OB_BAD_NULL_ERROR] = &_error_OB_BAD_NULL_ERROR;
    _errors[-OB_OBCONFIG_RETURN_ERROR] = &_error_OB_OBCONFIG_RETURN_ERROR;
    _errors[-OB_OBCONFIG_APPNAME_MISMATCH] = &_error_OB_OBCONFIG_APPNAME_MISMATCH;
    _errors[-OB_ERR_VIEW_SELECT_DERIVED] = &_error_OB_ERR_VIEW_SELECT_DERIVED;
    _errors[-OB_CANT_MJ_PATH] = &_error_OB_CANT_MJ_PATH;
    _errors[-OB_ERR_NO_JOIN_ORDER_GENERATED] = &_error_OB_ERR_NO_JOIN_ORDER_GENERATED;
    _errors[-OB_ERR_NO_PATH_GENERATED] = &_error_OB_ERR_NO_PATH_GENERATED;
    _errors[-OB_ERR_WAIT_REMOTE_SCHEMA_REFRESH] = &_error_OB_ERR_WAIT_REMOTE_SCHEMA_REFRESH;
    _errors[-OB_FILE_NOT_OPENED] = &_error_OB_FILE_NOT_OPENED;
    _errors[-OB_TIMER_TASK_HAS_SCHEDULED] = &_error_OB_TIMER_TASK_HAS_SCHEDULED;
    _errors[-OB_TIMER_TASK_HAS_NOT_SCHEDULED] = &_error_OB_TIMER_TASK_HAS_NOT_SCHEDULED;
    _errors[-OB_PARSE_DEBUG_SYNC_ERROR] = &_error_OB_PARSE_DEBUG_SYNC_ERROR;
    _errors[-OB_UNKNOWN_DEBUG_SYNC_POINT] = &_error_OB_UNKNOWN_DEBUG_SYNC_POINT;
    _errors[-OB_ERR_INTERRUPTED] = &_error_OB_ERR_INTERRUPTED;
    _errors[-OB_ERR_DATA_TRUNCATED] = &_error_OB_ERR_DATA_TRUNCATED;
    _errors[-OB_NOT_RUNNING] = &_error_OB_NOT_RUNNING;
    _errors[-OB_INVALID_PARTITION] = &_error_OB_INVALID_PARTITION;
    _errors[-OB_ERR_TIMEOUT_TRUNCATED] = &_error_OB_ERR_TIMEOUT_TRUNCATED;
    _errors[-OB_ERR_TOO_LONG_TENANT_COMMENT] = &_error_OB_ERR_TOO_LONG_TENANT_COMMENT;
    _errors[-OB_ERR_NET_PACKET_TOO_LARGE] = &_error_OB_ERR_NET_PACKET_TOO_LARGE;
    _errors[-OB_TRACE_DESC_NOT_EXIST] = &_error_OB_TRACE_DESC_NOT_EXIST;
    _errors[-OB_ERR_NO_DEFAULT] = &_error_OB_ERR_NO_DEFAULT;
    _errors[-OB_ERR_COMPRESS_DECOMPRESS_DATA] = &_error_OB_ERR_COMPRESS_DECOMPRESS_DATA;
    _errors[-OB_ERR_INCORRECT_STRING_VALUE] = &_error_OB_ERR_INCORRECT_STRING_VALUE;
    _errors[-OB_IS_CHANGING_LEADER] = &_error_OB_IS_CHANGING_LEADER;
    _errors[-OB_DATETIME_FUNCTION_OVERFLOW] = &_error_OB_DATETIME_FUNCTION_OVERFLOW;
    _errors[-OB_ERR_DOUBLE_TRUNCATED] = &_error_OB_ERR_DOUBLE_TRUNCATED;
    _errors[-OB_MINOR_FREEZE_NOT_ALLOW] = &_error_OB_MINOR_FREEZE_NOT_ALLOW;
    _errors[-OB_LOG_OUTOF_DISK_SPACE] = &_error_OB_LOG_OUTOF_DISK_SPACE;
    _errors[-OB_RPC_CONNECT_ERROR] = &_error_OB_RPC_CONNECT_ERROR;
    _errors[-OB_MINOR_MERGE_NOT_ALLOW] = &_error_OB_MINOR_MERGE_NOT_ALLOW;
    _errors[-OB_CACHE_INVALID] = &_error_OB_CACHE_INVALID;
    _errors[-OB_REACH_SERVER_DATA_COPY_IN_CONCURRENCY_LIMIT] = &_error_OB_REACH_SERVER_DATA_COPY_IN_CONCURRENCY_LIMIT;
    _errors[-OB_WORKING_PARTITION_EXIST] = &_error_OB_WORKING_PARTITION_EXIST;
    _errors[-OB_WORKING_PARTITION_NOT_EXIST] = &_error_OB_WORKING_PARTITION_NOT_EXIST;
    _errors[-OB_LIBEASY_REACH_MEM_LIMIT] = &_error_OB_LIBEASY_REACH_MEM_LIMIT;
    _errors[-OB_CACHE_FREE_BLOCK_NOT_ENOUGH] = &_error_OB_CACHE_FREE_BLOCK_NOT_ENOUGH;
    _errors[-OB_SYNC_WASH_MB_TIMEOUT] = &_error_OB_SYNC_WASH_MB_TIMEOUT;
    _errors[-OB_NOT_ALLOW_MIGRATE_IN] = &_error_OB_NOT_ALLOW_MIGRATE_IN;
    _errors[-OB_SCHEDULER_TASK_CNT_MISTACH] = &_error_OB_SCHEDULER_TASK_CNT_MISTACH;
    _errors[-OB_MISS_ARGUMENT] = &_error_OB_MISS_ARGUMENT;
    _errors[-OB_LAST_LOG_NOT_COMPLETE] = &_error_OB_LAST_LOG_NOT_COMPLETE;
    _errors[-OB_TABLE_IS_DELETED] = &_error_OB_TABLE_IS_DELETED;
    _errors[-OB_VERSION_RANGE_NOT_CONTINUES] = &_error_OB_VERSION_RANGE_NOT_CONTINUES;
    _errors[-OB_INVALID_IO_BUFFER] = &_error_OB_INVALID_IO_BUFFER;
    _errors[-OB_PARTITION_IS_REMOVED] = &_error_OB_PARTITION_IS_REMOVED;
    _errors[-OB_GTS_NOT_READY] = &_error_OB_GTS_NOT_READY;
    _errors[-OB_MAJOR_SSTABLE_NOT_EXIST] = &_error_OB_MAJOR_SSTABLE_NOT_EXIST;
    _errors[-OB_VERSION_RANGE_DISCARDED] = &_error_OB_VERSION_RANGE_DISCARDED;
    _errors[-OB_MAJOR_SSTABLE_HAS_MERGED] = &_error_OB_MAJOR_SSTABLE_HAS_MERGED;
    _errors[-OB_MINOR_SSTABLE_RANGE_CROSS] = &_error_OB_MINOR_SSTABLE_RANGE_CROSS;
    _errors[-OB_MEMTABLE_CANNOT_MINOR_MERGE] = &_error_OB_MEMTABLE_CANNOT_MINOR_MERGE;
    _errors[-OB_TASK_EXIST] = &_error_OB_TASK_EXIST;
    _errors[-OB_ALLOCATE_DISK_SPACE_FAILED] = &_error_OB_ALLOCATE_DISK_SPACE_FAILED;
    _errors[-OB_CANT_FIND_UDF] = &_error_OB_CANT_FIND_UDF;
    _errors[-OB_CANT_INITIALIZE_UDF] = &_error_OB_CANT_INITIALIZE_UDF;
    _errors[-OB_UDF_NO_PATHS] = &_error_OB_UDF_NO_PATHS;
    _errors[-OB_UDF_EXISTS] = &_error_OB_UDF_EXISTS;
    _errors[-OB_CANT_OPEN_LIBRARY] = &_error_OB_CANT_OPEN_LIBRARY;
    _errors[-OB_CANT_FIND_DL_ENTRY] = &_error_OB_CANT_FIND_DL_ENTRY;
    _errors[-OB_OBJECT_NAME_EXIST] = &_error_OB_OBJECT_NAME_EXIST;
    _errors[-OB_OBJECT_NAME_NOT_EXIST] = &_error_OB_OBJECT_NAME_NOT_EXIST;
    _errors[-OB_ERR_DUP_ARGUMENT] = &_error_OB_ERR_DUP_ARGUMENT;
    _errors[-OB_ERR_INVALID_SEQUENCE_NAME] = &_error_OB_ERR_INVALID_SEQUENCE_NAME;
    _errors[-OB_ERR_DUP_MAXVALUE_SPEC] = &_error_OB_ERR_DUP_MAXVALUE_SPEC;
    _errors[-OB_ERR_DUP_MINVALUE_SPEC] = &_error_OB_ERR_DUP_MINVALUE_SPEC;
    _errors[-OB_ERR_DUP_CYCLE_SPEC] = &_error_OB_ERR_DUP_CYCLE_SPEC;
    _errors[-OB_ERR_DUP_CACHE_SPEC] = &_error_OB_ERR_DUP_CACHE_SPEC;
    _errors[-OB_ERR_DUP_ORDER_SPEC] = &_error_OB_ERR_DUP_ORDER_SPEC;
    _errors[-OB_ERR_CONFL_MAXVALUE_SPEC] = &_error_OB_ERR_CONFL_MAXVALUE_SPEC;
    _errors[-OB_ERR_CONFL_MINVALUE_SPEC] = &_error_OB_ERR_CONFL_MINVALUE_SPEC;
    _errors[-OB_ERR_CONFL_CYCLE_SPEC] = &_error_OB_ERR_CONFL_CYCLE_SPEC;
    _errors[-OB_ERR_CONFL_CACHE_SPEC] = &_error_OB_ERR_CONFL_CACHE_SPEC;
    _errors[-OB_ERR_CONFL_ORDER_SPEC] = &_error_OB_ERR_CONFL_ORDER_SPEC;
    _errors[-OB_ERR_ALTER_START_SEQ_NUMBER_NOT_ALLOWED] = &_error_OB_ERR_ALTER_START_SEQ_NUMBER_NOT_ALLOWED;
    _errors[-OB_ERR_DUP_INCREMENT_BY_SPEC] = &_error_OB_ERR_DUP_INCREMENT_BY_SPEC;
    _errors[-OB_ERR_DUP_START_WITH_SPEC] = &_error_OB_ERR_DUP_START_WITH_SPEC;
    _errors[-OB_ERR_REQUIRE_ALTER_SEQ_OPTION] = &_error_OB_ERR_REQUIRE_ALTER_SEQ_OPTION;
    _errors[-OB_ERR_SEQ_NOT_ALLOWED_HERE] = &_error_OB_ERR_SEQ_NOT_ALLOWED_HERE;
    _errors[-OB_ERR_SEQ_NOT_EXIST] = &_error_OB_ERR_SEQ_NOT_EXIST;
    _errors[-OB_ERR_SEQ_OPTION_MUST_BE_INTEGER] = &_error_OB_ERR_SEQ_OPTION_MUST_BE_INTEGER;
    _errors[-OB_ERR_SEQ_INCREMENT_CAN_NOT_BE_ZERO] = &_error_OB_ERR_SEQ_INCREMENT_CAN_NOT_BE_ZERO;
    _errors[-OB_ERR_SEQ_OPTION_EXCEED_RANGE] = &_error_OB_ERR_SEQ_OPTION_EXCEED_RANGE;
    _errors[-OB_ERR_MINVALUE_LARGER_THAN_MAXVALUE] = &_error_OB_ERR_MINVALUE_LARGER_THAN_MAXVALUE;
    _errors[-OB_ERR_SEQ_INCREMENT_TOO_LARGE] = &_error_OB_ERR_SEQ_INCREMENT_TOO_LARGE;
    _errors[-OB_ERR_START_WITH_LESS_THAN_MINVALUE] = &_error_OB_ERR_START_WITH_LESS_THAN_MINVALUE;
    _errors[-OB_ERR_MINVALUE_EXCEED_CURRVAL] = &_error_OB_ERR_MINVALUE_EXCEED_CURRVAL;
    _errors[-OB_ERR_START_WITH_EXCEED_MAXVALUE] = &_error_OB_ERR_START_WITH_EXCEED_MAXVALUE;
    _errors[-OB_ERR_MAXVALUE_EXCEED_CURRVAL] = &_error_OB_ERR_MAXVALUE_EXCEED_CURRVAL;
    _errors[-OB_ERR_SEQ_CACHE_TOO_SMALL] = &_error_OB_ERR_SEQ_CACHE_TOO_SMALL;
    _errors[-OB_ERR_SEQ_OPTION_OUT_OF_RANGE] = &_error_OB_ERR_SEQ_OPTION_OUT_OF_RANGE;
    _errors[-OB_ERR_SEQ_CACHE_TOO_LARGE] = &_error_OB_ERR_SEQ_CACHE_TOO_LARGE;
    _errors[-OB_ERR_SEQ_REQUIRE_MINVALUE] = &_error_OB_ERR_SEQ_REQUIRE_MINVALUE;
    _errors[-OB_ERR_SEQ_REQUIRE_MAXVALUE] = &_error_OB_ERR_SEQ_REQUIRE_MAXVALUE;
    _errors[-OB_ERR_SEQ_NO_LONGER_EXIST] = &_error_OB_ERR_SEQ_NO_LONGER_EXIST;
    _errors[-OB_ERR_SEQ_VALUE_EXCEED_LIMIT] = &_error_OB_ERR_SEQ_VALUE_EXCEED_LIMIT;
    _errors[-OB_ERR_DIVISOR_IS_ZERO] = &_error_OB_ERR_DIVISOR_IS_ZERO;
    _errors[-OB_ERR_AES_DECRYPT] = &_error_OB_ERR_AES_DECRYPT;
    _errors[-OB_ERR_AES_ENCRYPT] = &_error_OB_ERR_AES_ENCRYPT;
    _errors[-OB_ERR_AES_IV_LENGTH] = &_error_OB_ERR_AES_IV_LENGTH;
    _errors[-OB_STORE_DIR_ERROR] = &_error_OB_STORE_DIR_ERROR;
    _errors[-OB_OPEN_TWICE] = &_error_OB_OPEN_TWICE;
    _errors[-OB_RAID_SUPER_BLOCK_NOT_MACTH] = &_error_OB_RAID_SUPER_BLOCK_NOT_MACTH;
    _errors[-OB_NOT_OPEN] = &_error_OB_NOT_OPEN;
    _errors[-OB_NOT_IN_SERVICE] = &_error_OB_NOT_IN_SERVICE;
    _errors[-OB_RAID_DISK_NOT_NORMAL] = &_error_OB_RAID_DISK_NOT_NORMAL;
    _errors[-OB_TENANT_SCHEMA_NOT_FULL] = &_error_OB_TENANT_SCHEMA_NOT_FULL;
    _errors[-OB_INVALID_QUERY_TIMESTAMP] = &_error_OB_INVALID_QUERY_TIMESTAMP;
    _errors[-OB_DIR_NOT_EMPTY] = &_error_OB_DIR_NOT_EMPTY;
    _errors[-OB_SCHEMA_NOT_UPTODATE] = &_error_OB_SCHEMA_NOT_UPTODATE;
    _errors[-OB_ROLE_NOT_EXIST] = &_error_OB_ROLE_NOT_EXIST;
    _errors[-OB_ROLE_EXIST] = &_error_OB_ROLE_EXIST;
    _errors[-OB_PRIV_DUP] = &_error_OB_PRIV_DUP;
    _errors[-OB_KEYSTORE_EXIST] = &_error_OB_KEYSTORE_EXIST;
    _errors[-OB_KEYSTORE_NOT_EXIST] = &_error_OB_KEYSTORE_NOT_EXIST;
    _errors[-OB_KEYSTORE_WRONG_PASSWORD] = &_error_OB_KEYSTORE_WRONG_PASSWORD;
    _errors[-OB_TABLESPACE_EXIST] = &_error_OB_TABLESPACE_EXIST;
    _errors[-OB_TABLESPACE_NOT_EXIST] = &_error_OB_TABLESPACE_NOT_EXIST;
    _errors[-OB_TABLESPACE_DELETE_NOT_EMPTY] = &_error_OB_TABLESPACE_DELETE_NOT_EMPTY;
    _errors[-OB_FLOAT_PRECISION_OUT_RANGE] = &_error_OB_FLOAT_PRECISION_OUT_RANGE;
    _errors[-OB_NUMERIC_PRECISION_OUT_RANGE] = &_error_OB_NUMERIC_PRECISION_OUT_RANGE;
    _errors[-OB_NUMERIC_SCALE_OUT_RANGE] = &_error_OB_NUMERIC_SCALE_OUT_RANGE;
    _errors[-OB_KEYSTORE_NOT_OPEN] = &_error_OB_KEYSTORE_NOT_OPEN;
    _errors[-OB_KEYSTORE_OPEN_NO_MASTER_KEY] = &_error_OB_KEYSTORE_OPEN_NO_MASTER_KEY;
    _errors[-OB_SLOG_REACH_MAX_CONCURRENCY] = &_error_OB_SLOG_REACH_MAX_CONCURRENCY;
    _errors[-OB_ERR_BY_ACCESS_OR_SESSION_CLAUSE_NOT_ALLOWED_FOR_NOAUDIT] = &_error_OB_ERR_BY_ACCESS_OR_SESSION_CLAUSE_NOT_ALLOWED_FOR_NOAUDIT;
    _errors[-OB_ERR_AUDITING_THE_OBJECT_IS_NOT_SUPPORTED] = &_error_OB_ERR_AUDITING_THE_OBJECT_IS_NOT_SUPPORTED;
    _errors[-OB_ERR_DDL_STATEMENT_CANNOT_BE_AUDITED_WITH_BY_SESSION_SPECIFIED] = &_error_OB_ERR_DDL_STATEMENT_CANNOT_BE_AUDITED_WITH_BY_SESSION_SPECIFIED;
    _errors[-OB_ERR_NOT_VALID_PASSWORD] = &_error_OB_ERR_NOT_VALID_PASSWORD;
    _errors[-OB_ERR_MUST_CHANGE_PASSWORD] = &_error_OB_ERR_MUST_CHANGE_PASSWORD;
    _errors[-OB_OVERSIZE_NEED_RETRY] = &_error_OB_OVERSIZE_NEED_RETRY;
    _errors[-OB_OBCONFIG_CLUSTER_NOT_EXIST] = &_error_OB_OBCONFIG_CLUSTER_NOT_EXIST;
    _errors[-OB_ERR_GET_MASTER_KEY] = &_error_OB_ERR_GET_MASTER_KEY;
    _errors[-OB_ERR_TDE_METHOD] = &_error_OB_ERR_TDE_METHOD;
    _errors[-OB_KMS_SERVER_CONNECT_ERROR] = &_error_OB_KMS_SERVER_CONNECT_ERROR;
    _errors[-OB_KMS_SERVER_IS_BUSY] = &_error_OB_KMS_SERVER_IS_BUSY;
    _errors[-OB_KMS_SERVER_UPDATE_KEY_CONFLICT] = &_error_OB_KMS_SERVER_UPDATE_KEY_CONFLICT;
    _errors[-OB_ERR_VALUE_LARGER_THAN_ALLOWED] = &_error_OB_ERR_VALUE_LARGER_THAN_ALLOWED;
    _errors[-OB_DISK_ERROR] = &_error_OB_DISK_ERROR;
    _errors[-OB_UNIMPLEMENTED_FEATURE] = &_error_OB_UNIMPLEMENTED_FEATURE;
    _errors[-OB_ERR_DEFENSIVE_CHECK] = &_error_OB_ERR_DEFENSIVE_CHECK;
    _errors[-OB_CLUSTER_NAME_HASH_CONFLICT] = &_error_OB_CLUSTER_NAME_HASH_CONFLICT;
    _errors[-OB_HEAP_TABLE_EXAUSTED] = &_error_OB_HEAP_TABLE_EXAUSTED;
    _errors[-OB_ERR_INDEX_KEY_NOT_FOUND] = &_error_OB_ERR_INDEX_KEY_NOT_FOUND;
    _errors[-OB_UNSUPPORTED_DEPRECATED_FEATURE] = &_error_OB_UNSUPPORTED_DEPRECATED_FEATURE;
    _errors[-OB_ERR_DUP_RESTART_SPEC] = &_error_OB_ERR_DUP_RESTART_SPEC;
    _errors[-OB_GTI_NOT_READY] = &_error_OB_GTI_NOT_READY;
    _errors[-OB_STACK_OVERFLOW] = &_error_OB_STACK_OVERFLOW;
    _errors[-OB_NOT_ALLOW_REMOVING_LEADER] = &_error_OB_NOT_ALLOW_REMOVING_LEADER;
    _errors[-OB_NEED_SWITCH_CONSUMER_GROUP] = &_error_OB_NEED_SWITCH_CONSUMER_GROUP;
    _errors[-OB_UNEXPECT_INTERNAL_ERROR] = &_error_OB_UNEXPECT_INTERNAL_ERROR;
    _errors[-OB_ERR_TOO_MUCH_TIME] = &_error_OB_ERR_TOO_MUCH_TIME;
    _errors[-OB_ERR_REMOTE_SCHEMA_NOT_FULL] = &_error_OB_ERR_REMOTE_SCHEMA_NOT_FULL;
    _errors[-OB_DDL_SSTABLE_RANGE_CROSS] = &_error_OB_DDL_SSTABLE_RANGE_CROSS;
    _errors[-OB_DISK_HUNG] = &_error_OB_DISK_HUNG;
    _errors[-OB_ERR_OBSERVER_START] = &_error_OB_ERR_OBSERVER_START;
    _errors[-OB_ERR_OBSERVER_STOP] = &_error_OB_ERR_OBSERVER_STOP;
    _errors[-OB_ERR_OBSERVICE_START] = &_error_OB_ERR_OBSERVICE_START;
    _errors[-OB_ERR_THREAD_PANIC] = &_error_OB_ERR_THREAD_PANIC;
    _errors[-OB_ENCODING_EST_SIZE_OVERFLOW] = &_error_OB_ENCODING_EST_SIZE_OVERFLOW;
    _errors[-OB_INVALID_SUB_PARTITION_TYPE] = &_error_OB_INVALID_SUB_PARTITION_TYPE;
    _errors[-OB_ERR_UNEXPECTED_UNIT_STATUS] = &_error_OB_ERR_UNEXPECTED_UNIT_STATUS;
    _errors[-OB_AUTOINC_CACHE_NOT_EQUAL] = &_error_OB_AUTOINC_CACHE_NOT_EQUAL;
    _errors[-OB_ERR_KILL_CLIENT_SESSION] = &_error_OB_ERR_KILL_CLIENT_SESSION;
    _errors[-OB_ERR_KILL_CLIENT_SESSION_FAILED] = &_error_OB_ERR_KILL_CLIENT_SESSION_FAILED;
    _errors[-OB_IMPROPER_OS_PARAM] = &_error_OB_IMPROPER_OS_PARAM;
    _errors[-OB_IMPORT_NOT_IN_SERVER] = &_error_OB_IMPORT_NOT_IN_SERVER;
    _errors[-OB_CONVERT_ERROR] = &_error_OB_CONVERT_ERROR;
    _errors[-OB_BYPASS_TIMEOUT] = &_error_OB_BYPASS_TIMEOUT;
    _errors[-OB_RS_STATE_NOT_ALLOW] = &_error_OB_RS_STATE_NOT_ALLOW;
    _errors[-OB_NO_REPLICA_VALID] = &_error_OB_NO_REPLICA_VALID;
    _errors[-OB_NO_NEED_UPDATE] = &_error_OB_NO_NEED_UPDATE;
    _errors[-OB_CACHE_TIMEOUT] = &_error_OB_CACHE_TIMEOUT;
    _errors[-OB_ITER_STOP] = &_error_OB_ITER_STOP;
    _errors[-OB_ZONE_ALREADY_MASTER] = &_error_OB_ZONE_ALREADY_MASTER;
    _errors[-OB_IP_PORT_IS_NOT_SLAVE_ZONE] = &_error_OB_IP_PORT_IS_NOT_SLAVE_ZONE;
    _errors[-OB_ZONE_IS_NOT_SLAVE] = &_error_OB_ZONE_IS_NOT_SLAVE;
    _errors[-OB_ZONE_IS_NOT_MASTER] = &_error_OB_ZONE_IS_NOT_MASTER;
    _errors[-OB_CONFIG_NOT_SYNC] = &_error_OB_CONFIG_NOT_SYNC;
    _errors[-OB_IP_PORT_IS_NOT_ZONE] = &_error_OB_IP_PORT_IS_NOT_ZONE;
    _errors[-OB_MASTER_ZONE_NOT_EXIST] = &_error_OB_MASTER_ZONE_NOT_EXIST;
    _errors[-OB_ZONE_INFO_NOT_EXIST] = &_error_OB_ZONE_INFO_NOT_EXIST;
    _errors[-OB_GET_ZONE_MASTER_UPS_FAILED] = &_error_OB_GET_ZONE_MASTER_UPS_FAILED;
    _errors[-OB_MULTIPLE_MASTER_ZONES_EXIST] = &_error_OB_MULTIPLE_MASTER_ZONES_EXIST;
    _errors[-OB_INDEXING_ZONE_INVALID] = &_error_OB_INDEXING_ZONE_INVALID;
    _errors[-OB_ROOT_TABLE_RANGE_NOT_EXIST] = &_error_OB_ROOT_TABLE_RANGE_NOT_EXIST;
    _errors[-OB_ROOT_MIGRATE_CONCURRENCY_FULL] = &_error_OB_ROOT_MIGRATE_CONCURRENCY_FULL;
    _errors[-OB_ROOT_MIGRATE_INFO_NOT_FOUND] = &_error_OB_ROOT_MIGRATE_INFO_NOT_FOUND;
    _errors[-OB_NOT_DATA_LOAD_TABLE] = &_error_OB_NOT_DATA_LOAD_TABLE;
    _errors[-OB_DATA_LOAD_TABLE_DUPLICATED] = &_error_OB_DATA_LOAD_TABLE_DUPLICATED;
    _errors[-OB_ROOT_TABLE_ID_EXIST] = &_error_OB_ROOT_TABLE_ID_EXIST;
    _errors[-OB_INDEX_TIMEOUT] = &_error_OB_INDEX_TIMEOUT;
    _errors[-OB_ROOT_NOT_INTEGRATED] = &_error_OB_ROOT_NOT_INTEGRATED;
    _errors[-OB_INDEX_INELIGIBLE] = &_error_OB_INDEX_INELIGIBLE;
    _errors[-OB_REBALANCE_EXEC_TIMEOUT] = &_error_OB_REBALANCE_EXEC_TIMEOUT;
    _errors[-OB_MERGE_NOT_STARTED] = &_error_OB_MERGE_NOT_STARTED;
    _errors[-OB_MERGE_ALREADY_STARTED] = &_error_OB_MERGE_ALREADY_STARTED;
    _errors[-OB_ROOTSERVICE_EXIST] = &_error_OB_ROOTSERVICE_EXIST;
    _errors[-OB_RS_SHUTDOWN] = &_error_OB_RS_SHUTDOWN;
    _errors[-OB_SERVER_MIGRATE_IN_DENIED] = &_error_OB_SERVER_MIGRATE_IN_DENIED;
    _errors[-OB_REBALANCE_TASK_CANT_EXEC] = &_error_OB_REBALANCE_TASK_CANT_EXEC;
    _errors[-OB_PARTITION_CNT_REACH_ROOTSERVER_LIMIT] = &_error_OB_PARTITION_CNT_REACH_ROOTSERVER_LIMIT;
    _errors[-OB_REBALANCE_TASK_NOT_IN_PROGRESS] = &_error_OB_REBALANCE_TASK_NOT_IN_PROGRESS;
    _errors[-OB_DATA_SOURCE_NOT_EXIST] = &_error_OB_DATA_SOURCE_NOT_EXIST;
    _errors[-OB_DATA_SOURCE_TABLE_NOT_EXIST] = &_error_OB_DATA_SOURCE_TABLE_NOT_EXIST;
    _errors[-OB_DATA_SOURCE_RANGE_NOT_EXIST] = &_error_OB_DATA_SOURCE_RANGE_NOT_EXIST;
    _errors[-OB_DATA_SOURCE_DATA_NOT_EXIST] = &_error_OB_DATA_SOURCE_DATA_NOT_EXIST;
    _errors[-OB_DATA_SOURCE_SYS_ERROR] = &_error_OB_DATA_SOURCE_SYS_ERROR;
    _errors[-OB_DATA_SOURCE_TIMEOUT] = &_error_OB_DATA_SOURCE_TIMEOUT;
    _errors[-OB_DATA_SOURCE_CONCURRENCY_FULL] = &_error_OB_DATA_SOURCE_CONCURRENCY_FULL;
    _errors[-OB_DATA_SOURCE_WRONG_URI_FORMAT] = &_error_OB_DATA_SOURCE_WRONG_URI_FORMAT;
    _errors[-OB_SSTABLE_VERSION_UNEQUAL] = &_error_OB_SSTABLE_VERSION_UNEQUAL;
    _errors[-OB_UPS_RENEW_LEASE_NOT_ALLOWED] = &_error_OB_UPS_RENEW_LEASE_NOT_ALLOWED;
    _errors[-OB_UPS_COUNT_OVER_LIMIT] = &_error_OB_UPS_COUNT_OVER_LIMIT;
    _errors[-OB_NO_UPS_MAJORITY] = &_error_OB_NO_UPS_MAJORITY;
    _errors[-OB_INDEX_COUNT_REACH_THE_LIMIT] = &_error_OB_INDEX_COUNT_REACH_THE_LIMIT;
    _errors[-OB_TASK_EXPIRED] = &_error_OB_TASK_EXPIRED;
    _errors[-OB_TABLEGROUP_NOT_EMPTY] = &_error_OB_TABLEGROUP_NOT_EMPTY;
    _errors[-OB_INVALID_SERVER_STATUS] = &_error_OB_INVALID_SERVER_STATUS;
    _errors[-OB_WAIT_ELEC_LEADER_TIMEOUT] = &_error_OB_WAIT_ELEC_LEADER_TIMEOUT;
    _errors[-OB_WAIT_ALL_RS_ONLINE_TIMEOUT] = &_error_OB_WAIT_ALL_RS_ONLINE_TIMEOUT;
    _errors[-OB_ALL_REPLICAS_ON_MERGE_ZONE] = &_error_OB_ALL_REPLICAS_ON_MERGE_ZONE;
    _errors[-OB_MACHINE_RESOURCE_NOT_ENOUGH] = &_error_OB_MACHINE_RESOURCE_NOT_ENOUGH;
    _errors[-OB_NOT_SERVER_CAN_HOLD_SOFTLY] = &_error_OB_NOT_SERVER_CAN_HOLD_SOFTLY;
    _errors[-OB_RESOURCE_POOL_ALREADY_GRANTED] = &_error_OB_RESOURCE_POOL_ALREADY_GRANTED;
    _errors[-OB_SERVER_ALREADY_DELETED] = &_error_OB_SERVER_ALREADY_DELETED;
    _errors[-OB_SERVER_NOT_DELETING] = &_error_OB_SERVER_NOT_DELETING;
    _errors[-OB_SERVER_NOT_IN_WHITE_LIST] = &_error_OB_SERVER_NOT_IN_WHITE_LIST;
    _errors[-OB_SERVER_ZONE_NOT_MATCH] = &_error_OB_SERVER_ZONE_NOT_MATCH;
    _errors[-OB_OVER_ZONE_NUM_LIMIT] = &_error_OB_OVER_ZONE_NUM_LIMIT;
    _errors[-OB_ZONE_STATUS_NOT_MATCH] = &_error_OB_ZONE_STATUS_NOT_MATCH;
    _errors[-OB_RESOURCE_UNIT_IS_REFERENCED] = &_error_OB_RESOURCE_UNIT_IS_REFERENCED;
    _errors[-OB_DIFFERENT_PRIMARY_ZONE] = &_error_OB_DIFFERENT_PRIMARY_ZONE;
    _errors[-OB_SERVER_NOT_ACTIVE] = &_error_OB_SERVER_NOT_ACTIVE;
    _errors[-OB_RS_NOT_MASTER] = &_error_OB_RS_NOT_MASTER;
    _errors[-OB_CANDIDATE_LIST_ERROR] = &_error_OB_CANDIDATE_LIST_ERROR;
    _errors[-OB_PARTITION_ZONE_DUPLICATED] = &_error_OB_PARTITION_ZONE_DUPLICATED;
    _errors[-OB_ZONE_DUPLICATED] = &_error_OB_ZONE_DUPLICATED;
    _errors[-OB_NOT_ALL_ZONE_ACTIVE] = &_error_OB_NOT_ALL_ZONE_ACTIVE;
    _errors[-OB_PRIMARY_ZONE_NOT_IN_ZONE_LIST] = &_error_OB_PRIMARY_ZONE_NOT_IN_ZONE_LIST;
    _errors[-OB_REPLICA_NUM_NOT_MATCH] = &_error_OB_REPLICA_NUM_NOT_MATCH;
    _errors[-OB_ZONE_LIST_POOL_LIST_NOT_MATCH] = &_error_OB_ZONE_LIST_POOL_LIST_NOT_MATCH;
    _errors[-OB_INVALID_TENANT_NAME] = &_error_OB_INVALID_TENANT_NAME;
    _errors[-OB_EMPTY_RESOURCE_POOL_LIST] = &_error_OB_EMPTY_RESOURCE_POOL_LIST;
    _errors[-OB_RESOURCE_UNIT_NOT_EXIST] = &_error_OB_RESOURCE_UNIT_NOT_EXIST;
    _errors[-OB_RESOURCE_UNIT_EXIST] = &_error_OB_RESOURCE_UNIT_EXIST;
    _errors[-OB_RESOURCE_POOL_NOT_EXIST] = &_error_OB_RESOURCE_POOL_NOT_EXIST;
    _errors[-OB_RESOURCE_POOL_EXIST] = &_error_OB_RESOURCE_POOL_EXIST;
    _errors[-OB_WAIT_LEADER_SWITCH_TIMEOUT] = &_error_OB_WAIT_LEADER_SWITCH_TIMEOUT;
    _errors[-OB_LOCATION_NOT_EXIST] = &_error_OB_LOCATION_NOT_EXIST;
    _errors[-OB_LOCATION_LEADER_NOT_EXIST] = &_error_OB_LOCATION_LEADER_NOT_EXIST;
    _errors[-OB_ZONE_NOT_ACTIVE] = &_error_OB_ZONE_NOT_ACTIVE;
    _errors[-OB_UNIT_NUM_OVER_SERVER_COUNT] = &_error_OB_UNIT_NUM_OVER_SERVER_COUNT;
    _errors[-OB_POOL_SERVER_INTERSECT] = &_error_OB_POOL_SERVER_INTERSECT;
    _errors[-OB_NOT_SINGLE_RESOURCE_POOL] = &_error_OB_NOT_SINGLE_RESOURCE_POOL;
    _errors[-OB_RESOURCE_UNIT_VALUE_BELOW_LIMIT] = &_error_OB_RESOURCE_UNIT_VALUE_BELOW_LIMIT;
    _errors[-OB_STOP_SERVER_IN_MULTIPLE_ZONES] = &_error_OB_STOP_SERVER_IN_MULTIPLE_ZONES;
    _errors[-OB_SESSION_ENTRY_EXIST] = &_error_OB_SESSION_ENTRY_EXIST;
    _errors[-OB_GOT_SIGNAL_ABORTING] = &_error_OB_GOT_SIGNAL_ABORTING;
    _errors[-OB_SERVER_NOT_ALIVE] = &_error_OB_SERVER_NOT_ALIVE;
    _errors[-OB_GET_LOCATION_TIME_OUT] = &_error_OB_GET_LOCATION_TIME_OUT;
    _errors[-OB_UNIT_IS_MIGRATING] = &_error_OB_UNIT_IS_MIGRATING;
    _errors[-OB_CLUSTER_NO_MATCH] = &_error_OB_CLUSTER_NO_MATCH;
    _errors[-OB_CHECK_ZONE_MERGE_ORDER] = &_error_OB_CHECK_ZONE_MERGE_ORDER;
    _errors[-OB_ERR_ZONE_NOT_EMPTY] = &_error_OB_ERR_ZONE_NOT_EMPTY;
    _errors[-OB_DIFFERENT_LOCALITY] = &_error_OB_DIFFERENT_LOCALITY;
    _errors[-OB_EMPTY_LOCALITY] = &_error_OB_EMPTY_LOCALITY;
    _errors[-OB_FULL_REPLICA_NUM_NOT_ENOUGH] = &_error_OB_FULL_REPLICA_NUM_NOT_ENOUGH;
    _errors[-OB_REPLICA_NUM_NOT_ENOUGH] = &_error_OB_REPLICA_NUM_NOT_ENOUGH;
    _errors[-OB_DATA_SOURCE_NOT_VALID] = &_error_OB_DATA_SOURCE_NOT_VALID;
    _errors[-OB_RUN_JOB_NOT_SUCCESS] = &_error_OB_RUN_JOB_NOT_SUCCESS;
    _errors[-OB_NO_NEED_REBUILD] = &_error_OB_NO_NEED_REBUILD;
    _errors[-OB_NEED_REMOVE_UNNEED_TABLE] = &_error_OB_NEED_REMOVE_UNNEED_TABLE;
    _errors[-OB_NO_NEED_MERGE] = &_error_OB_NO_NEED_MERGE;
    _errors[-OB_CONFLICT_OPTION] = &_error_OB_CONFLICT_OPTION;
    _errors[-OB_DUPLICATE_OPTION] = &_error_OB_DUPLICATE_OPTION;
    _errors[-OB_INVALID_OPTION] = &_error_OB_INVALID_OPTION;
    _errors[-OB_RPC_NEED_RECONNECT] = &_error_OB_RPC_NEED_RECONNECT;
    _errors[-OB_CANNOT_COPY_MAJOR_SSTABLE] = &_error_OB_CANNOT_COPY_MAJOR_SSTABLE;
    _errors[-OB_SRC_DO_NOT_ALLOWED_MIGRATE] = &_error_OB_SRC_DO_NOT_ALLOWED_MIGRATE;
    _errors[-OB_TOO_MANY_TENANT_PARTITIONS_ERROR] = &_error_OB_TOO_MANY_TENANT_PARTITIONS_ERROR;
    _errors[-OB_ACTIVE_MEMTBALE_NOT_EXSIT] = &_error_OB_ACTIVE_MEMTBALE_NOT_EXSIT;
    _errors[-OB_USE_DUP_FOLLOW_AFTER_DML] = &_error_OB_USE_DUP_FOLLOW_AFTER_DML;
    _errors[-OB_NO_DISK_NEED_REBUILD] = &_error_OB_NO_DISK_NEED_REBUILD;
    _errors[-OB_STANDBY_READ_ONLY] = &_error_OB_STANDBY_READ_ONLY;
    _errors[-OB_INVALD_WEB_SERVICE_CONTENT] = &_error_OB_INVALD_WEB_SERVICE_CONTENT;
    _errors[-OB_PRIMARY_CLUSTER_EXIST] = &_error_OB_PRIMARY_CLUSTER_EXIST;
    _errors[-OB_ARRAY_BINDING_SWITCH_ITERATOR] = &_error_OB_ARRAY_BINDING_SWITCH_ITERATOR;
    _errors[-OB_ERR_STANDBY_CLUSTER_NOT_EMPTY] = &_error_OB_ERR_STANDBY_CLUSTER_NOT_EMPTY;
    _errors[-OB_NOT_PRIMARY_CLUSTER] = &_error_OB_NOT_PRIMARY_CLUSTER;
    _errors[-OB_ERR_CHECK_DROP_COLUMN_FAILED] = &_error_OB_ERR_CHECK_DROP_COLUMN_FAILED;
    _errors[-OB_NOT_STANDBY_CLUSTER] = &_error_OB_NOT_STANDBY_CLUSTER;
    _errors[-OB_CLUSTER_VERSION_NOT_COMPATIBLE] = &_error_OB_CLUSTER_VERSION_NOT_COMPATIBLE;
    _errors[-OB_WAIT_TRANS_TABLE_MERGE_TIMEOUT] = &_error_OB_WAIT_TRANS_TABLE_MERGE_TIMEOUT;
    _errors[-OB_SKIP_RENEW_LOCATION_BY_RPC] = &_error_OB_SKIP_RENEW_LOCATION_BY_RPC;
    _errors[-OB_RENEW_LOCATION_BY_RPC_FAILED] = &_error_OB_RENEW_LOCATION_BY_RPC_FAILED;
    _errors[-OB_CLUSTER_ID_NO_MATCH] = &_error_OB_CLUSTER_ID_NO_MATCH;
    _errors[-OB_ERR_PARAM_INVALID] = &_error_OB_ERR_PARAM_INVALID;
    _errors[-OB_ERR_RES_OBJ_ALREADY_EXIST] = &_error_OB_ERR_RES_OBJ_ALREADY_EXIST;
    _errors[-OB_ERR_RES_PLAN_NOT_EXIST] = &_error_OB_ERR_RES_PLAN_NOT_EXIST;
    _errors[-OB_ERR_PERCENTAGE_OUT_OF_RANGE] = &_error_OB_ERR_PERCENTAGE_OUT_OF_RANGE;
    _errors[-OB_ERR_PLAN_DIRECTIVE_NOT_EXIST] = &_error_OB_ERR_PLAN_DIRECTIVE_NOT_EXIST;
    _errors[-OB_ERR_PLAN_DIRECTIVE_ALREADY_EXIST] = &_error_OB_ERR_PLAN_DIRECTIVE_ALREADY_EXIST;
    _errors[-OB_ERR_INVALID_PLAN_DIRECTIVE_NAME] = &_error_OB_ERR_INVALID_PLAN_DIRECTIVE_NAME;
    _errors[-OB_FAILOVER_NOT_ALLOW] = &_error_OB_FAILOVER_NOT_ALLOW;
    _errors[-OB_ADD_CLUSTER_NOT_ALLOWED] = &_error_OB_ADD_CLUSTER_NOT_ALLOWED;
    _errors[-OB_ERR_CONSUMER_GROUP_NOT_EXIST] = &_error_OB_ERR_CONSUMER_GROUP_NOT_EXIST;
    _errors[-OB_CLUSTER_NOT_ACCESSIBLE] = &_error_OB_CLUSTER_NOT_ACCESSIBLE;
    _errors[-OB_TENANT_RESOURCE_UNIT_EXIST] = &_error_OB_TENANT_RESOURCE_UNIT_EXIST;
    _errors[-OB_ERR_DROP_TRUNCATE_PARTITION_REBUILD_INDEX] = &_error_OB_ERR_DROP_TRUNCATE_PARTITION_REBUILD_INDEX;
    _errors[-OB_ERR_ATLER_TABLE_ILLEGAL_FK] = &_error_OB_ERR_ATLER_TABLE_ILLEGAL_FK;
    _errors[-OB_ERR_NO_RESOURCE_MANAGER_PRIVILEGE] = &_error_OB_ERR_NO_RESOURCE_MANAGER_PRIVILEGE;
    _errors[-OB_LEADER_COORDINATOR_NEED_RETRY] = &_error_OB_LEADER_COORDINATOR_NEED_RETRY;
    _errors[-OB_REBALANCE_TASK_NEED_RETRY] = &_error_OB_REBALANCE_TASK_NEED_RETRY;
    _errors[-OB_ERR_RES_MGR_PLAN_NOT_EXIST] = &_error_OB_ERR_RES_MGR_PLAN_NOT_EXIST;
    _errors[-OB_LS_NOT_EXIST] = &_error_OB_LS_NOT_EXIST;
    _errors[-OB_TOO_MANY_TENANT_LS] = &_error_OB_TOO_MANY_TENANT_LS;
    _errors[-OB_LS_LOCATION_NOT_EXIST] = &_error_OB_LS_LOCATION_NOT_EXIST;
    _errors[-OB_LS_LOCATION_LEADER_NOT_EXIST] = &_error_OB_LS_LOCATION_LEADER_NOT_EXIST;
    _errors[-OB_MAPPING_BETWEEN_TABLET_AND_LS_NOT_EXIST] = &_error_OB_MAPPING_BETWEEN_TABLET_AND_LS_NOT_EXIST;
    _errors[-OB_TABLET_EXIST] = &_error_OB_TABLET_EXIST;
    _errors[-OB_TABLET_NOT_EXIST] = &_error_OB_TABLET_NOT_EXIST;
    _errors[-OB_ERR_STANDBY_STATUS] = &_error_OB_ERR_STANDBY_STATUS;
    _errors[-OB_LS_NEED_REVOKE] = &_error_OB_LS_NEED_REVOKE;
    _errors[-OB_ERR_INTERVAL_PARTITION_EXIST] = &_error_OB_ERR_INTERVAL_PARTITION_EXIST;
    _errors[-OB_ERR_INTERVAL_PARTITION_ERROR] = &_error_OB_ERR_INTERVAL_PARTITION_ERROR;
    _errors[-OB_ERR_LAST_PARTITION_IN_THE_RANGE_SECTION_CANNOT_BE_DROPPED] = &_error_OB_ERR_LAST_PARTITION_IN_THE_RANGE_SECTION_CANNOT_BE_DROPPED;
    _errors[-OB_ERR_SET_INTERVAL_IS_NOT_LEGAL_ON_THIS_TABLE] = &_error_OB_ERR_SET_INTERVAL_IS_NOT_LEGAL_ON_THIS_TABLE;
    _errors[-OB_CHECK_CLUSTER_STATUS] = &_error_OB_CHECK_CLUSTER_STATUS;
    _errors[-OB_ZONE_RESOURCE_NOT_ENOUGH] = &_error_OB_ZONE_RESOURCE_NOT_ENOUGH;
    _errors[-OB_ZONE_SERVER_NOT_ENOUGH] = &_error_OB_ZONE_SERVER_NOT_ENOUGH;
    _errors[-OB_SSTABLE_NOT_EXIST] = &_error_OB_SSTABLE_NOT_EXIST;
    _errors[-OB_RESOURCE_UNIT_VALUE_INVALID] = &_error_OB_RESOURCE_UNIT_VALUE_INVALID;
    _errors[-OB_LS_EXIST] = &_error_OB_LS_EXIST;
    _errors[-OB_DEVICE_EXIST] = &_error_OB_DEVICE_EXIST;
    _errors[-OB_DEVICE_NOT_EXIST] = &_error_OB_DEVICE_NOT_EXIST;
    _errors[-OB_LS_REPLICA_TASK_RESULT_UNCERTAIN] = &_error_OB_LS_REPLICA_TASK_RESULT_UNCERTAIN;
    _errors[-OB_WAIT_REPLAY_TIMEOUT] = &_error_OB_WAIT_REPLAY_TIMEOUT;
    _errors[-OB_WAIT_TABLET_READY_TIMEOUT] = &_error_OB_WAIT_TABLET_READY_TIMEOUT;
    _errors[-OB_FREEZE_SERVICE_EPOCH_MISMATCH] = &_error_OB_FREEZE_SERVICE_EPOCH_MISMATCH;
    _errors[-OB_FROZEN_INFO_ALREADY_EXIST] = &_error_OB_FROZEN_INFO_ALREADY_EXIST;
    _errors[-OB_DELETE_SERVER_NOT_ALLOWED] = &_error_OB_DELETE_SERVER_NOT_ALLOWED;
    _errors[-OB_PACKET_STATUS_UNKNOWN] = &_error_OB_PACKET_STATUS_UNKNOWN;
    _errors[-OB_ARBITRATION_SERVICE_NOT_EXIST] = &_error_OB_ARBITRATION_SERVICE_NOT_EXIST;
    _errors[-OB_ARBITRATION_SERVICE_ALREADY_EXIST] = &_error_OB_ARBITRATION_SERVICE_ALREADY_EXIST;
    _errors[-OB_UNEXPECTED_TABLET_STATUS] = &_error_OB_UNEXPECTED_TABLET_STATUS;
    _errors[-OB_INVALID_TABLE_STORE] = &_error_OB_INVALID_TABLE_STORE;
    _errors[-OB_WAIT_DEGRATION_TIMEOUT] = &_error_OB_WAIT_DEGRATION_TIMEOUT;
    _errors[-OB_ERR_ROOTSERVICE_START] = &_error_OB_ERR_ROOTSERVICE_START;
    _errors[-OB_ERR_ROOTSERVICE_STOP] = &_error_OB_ERR_ROOTSERVICE_STOP;
    _errors[-OB_ERR_ROOT_INSPECTION] = &_error_OB_ERR_ROOT_INSPECTION;
    _errors[-OB_ERR_ROOTSERVICE_THREAD_HUNG] = &_error_OB_ERR_ROOTSERVICE_THREAD_HUNG;
    _errors[-OB_MIGRATE_NOT_COMPATIBLE] = &_error_OB_MIGRATE_NOT_COMPATIBLE;
    _errors[-OB_CLUSTER_INFO_MAYBE_REMAINED] = &_error_OB_CLUSTER_INFO_MAYBE_REMAINED;
    _errors[-OB_ARBITRATION_INFO_QUERY_FAILED] = &_error_OB_ARBITRATION_INFO_QUERY_FAILED;
    _errors[-OB_IGNORE_ERR_ACCESS_VIRTUAL_TABLE] = &_error_OB_IGNORE_ERR_ACCESS_VIRTUAL_TABLE;
    _errors[-OB_LS_OFFLINE] = &_error_OB_LS_OFFLINE;
    _errors[-OB_LS_IS_DELETED] = &_error_OB_LS_IS_DELETED;
    _errors[-OB_SKIP_CHECKING_LS_STATUS] = &_error_OB_SKIP_CHECKING_LS_STATUS;
    _errors[-OB_ERR_USE_ROWID_FOR_UPDATE] = &_error_OB_ERR_USE_ROWID_FOR_UPDATE;
    _errors[-OB_ERR_UNKNOWN_SET_OPTION] = &_error_OB_ERR_UNKNOWN_SET_OPTION;
    _errors[-OB_CREATE_STANDBY_TENANT_FAILED] = &_error_OB_CREATE_STANDBY_TENANT_FAILED;
    _errors[-OB_LS_WAITING_SAFE_DESTROY] = &_error_OB_LS_WAITING_SAFE_DESTROY;
    _errors[-OB_LS_NOT_LEADER] = &_error_OB_LS_NOT_LEADER;
    _errors[-OB_LS_LOCK_CONFLICT] = &_error_OB_LS_LOCK_CONFLICT;
    _errors[-OB_INVALID_ROOT_KEY] = &_error_OB_INVALID_ROOT_KEY;
    _errors[-OB_CONFLICT_WITH_CLONE] = &_error_OB_CONFLICT_WITH_CLONE;
    _errors[-OB_BREAK_BY_TEST] = &_error_OB_BREAK_BY_TEST;
    _errors[-OB_ERR_PARSER_INIT] = &_error_OB_ERR_PARSER_INIT;
    _errors[-OB_ERR_PARSE_SQL] = &_error_OB_ERR_PARSE_SQL;
    _errors[-OB_ERR_RESOLVE_SQL] = &_error_OB_ERR_RESOLVE_SQL;
    _errors[-OB_ERR_GEN_PLAN] = &_error_OB_ERR_GEN_PLAN;
    _errors[-OB_ERR_PARSER_SYNTAX] = &_error_OB_ERR_PARSER_SYNTAX;
    _errors[-OB_ERR_COLUMN_SIZE] = &_error_OB_ERR_COLUMN_SIZE;
    _errors[-OB_ERR_COLUMN_DUPLICATE] = &_error_OB_ERR_COLUMN_DUPLICATE;
    _errors[-OB_ERR_OPERATOR_UNKNOWN] = &_error_OB_ERR_OPERATOR_UNKNOWN;
    _errors[-OB_ERR_STAR_DUPLICATE] = &_error_OB_ERR_STAR_DUPLICATE;
    _errors[-OB_ERR_ILLEGAL_ID] = &_error_OB_ERR_ILLEGAL_ID;
    _errors[-OB_ERR_ILLEGAL_VALUE] = &_error_OB_ERR_ILLEGAL_VALUE;
    _errors[-OB_ERR_COLUMN_AMBIGUOUS] = &_error_OB_ERR_COLUMN_AMBIGUOUS;
    _errors[-OB_ERR_LOGICAL_PLAN_FAILD] = &_error_OB_ERR_LOGICAL_PLAN_FAILD;
    _errors[-OB_ERR_SCHEMA_UNSET] = &_error_OB_ERR_SCHEMA_UNSET;
    _errors[-OB_ERR_ILLEGAL_NAME] = &_error_OB_ERR_ILLEGAL_NAME;
    _errors[-OB_TABLE_NOT_EXIST] = &_error_OB_TABLE_NOT_EXIST;
    _errors[-OB_ERR_TABLE_EXIST] = &_error_OB_ERR_TABLE_EXIST;
    _errors[-OB_ERR_EXPR_UNKNOWN] = &_error_OB_ERR_EXPR_UNKNOWN;
    _errors[-OB_ERR_ILLEGAL_TYPE] = &_error_OB_ERR_ILLEGAL_TYPE;
    _errors[-OB_ERR_PRIMARY_KEY_DUPLICATE] = &_error_OB_ERR_PRIMARY_KEY_DUPLICATE;
    _errors[-OB_ERR_KEY_NAME_DUPLICATE] = &_error_OB_ERR_KEY_NAME_DUPLICATE;
    _errors[-OB_ERR_CREATETIME_DUPLICATE] = &_error_OB_ERR_CREATETIME_DUPLICATE;
    _errors[-OB_ERR_MODIFYTIME_DUPLICATE] = &_error_OB_ERR_MODIFYTIME_DUPLICATE;
    _errors[-OB_ERR_ILLEGAL_INDEX] = &_error_OB_ERR_ILLEGAL_INDEX;
    _errors[-OB_ERR_INVALID_SCHEMA] = &_error_OB_ERR_INVALID_SCHEMA;
    _errors[-OB_ERR_INSERT_NULL_ROWKEY] = &_error_OB_ERR_INSERT_NULL_ROWKEY;
    _errors[-OB_ERR_COLUMN_NOT_FOUND] = &_error_OB_ERR_COLUMN_NOT_FOUND;
    _errors[-OB_ERR_DELETE_NULL_ROWKEY] = &_error_OB_ERR_DELETE_NULL_ROWKEY;
    _errors[-OB_ERR_USER_EMPTY] = &_error_OB_ERR_USER_EMPTY;
    _errors[-OB_ERR_USER_NOT_EXIST] = &_error_OB_ERR_USER_NOT_EXIST;
    _errors[-OB_ERR_NO_PRIVILEGE] = &_error_OB_ERR_NO_PRIVILEGE;
    _errors[-OB_ERR_NO_AVAILABLE_PRIVILEGE_ENTRY] = &_error_OB_ERR_NO_AVAILABLE_PRIVILEGE_ENTRY;
    _errors[-OB_ERR_WRONG_PASSWORD] = &_error_OB_ERR_WRONG_PASSWORD;
    _errors[-OB_ERR_USER_IS_LOCKED] = &_error_OB_ERR_USER_IS_LOCKED;
    _errors[-OB_ERR_UPDATE_ROWKEY_COLUMN] = &_error_OB_ERR_UPDATE_ROWKEY_COLUMN;
    _errors[-OB_ERR_UPDATE_JOIN_COLUMN] = &_error_OB_ERR_UPDATE_JOIN_COLUMN;
    _errors[-OB_ERR_INVALID_COLUMN_NUM] = &_error_OB_ERR_INVALID_COLUMN_NUM;
    _errors[-OB_ERR_PREPARE_STMT_NOT_FOUND] = &_error_OB_ERR_PREPARE_STMT_NOT_FOUND;
    _errors[-OB_ERR_SYS_VARIABLE_UNKNOWN] = &_error_OB_ERR_SYS_VARIABLE_UNKNOWN;
    _errors[-OB_ERR_OLDER_PRIVILEGE_VERSION] = &_error_OB_ERR_OLDER_PRIVILEGE_VERSION;
    _errors[-OB_ERR_LACK_OF_ROWKEY_COL] = &_error_OB_ERR_LACK_OF_ROWKEY_COL;
    _errors[-OB_ERR_USER_EXIST] = &_error_OB_ERR_USER_EXIST;
    _errors[-OB_ERR_PASSWORD_EMPTY] = &_error_OB_ERR_PASSWORD_EMPTY;
    _errors[-OB_ERR_GRANT_PRIVILEGES_TO_CREATE_TABLE] = &_error_OB_ERR_GRANT_PRIVILEGES_TO_CREATE_TABLE;
    _errors[-OB_ERR_WRONG_DYNAMIC_PARAM] = &_error_OB_ERR_WRONG_DYNAMIC_PARAM;
    _errors[-OB_ERR_PARAM_SIZE] = &_error_OB_ERR_PARAM_SIZE;
    _errors[-OB_ERR_FUNCTION_UNKNOWN] = &_error_OB_ERR_FUNCTION_UNKNOWN;
    _errors[-OB_ERR_CREAT_MODIFY_TIME_COLUMN] = &_error_OB_ERR_CREAT_MODIFY_TIME_COLUMN;
    _errors[-OB_ERR_MODIFY_PRIMARY_KEY] = &_error_OB_ERR_MODIFY_PRIMARY_KEY;
    _errors[-OB_ERR_PARAM_DUPLICATE] = &_error_OB_ERR_PARAM_DUPLICATE;
    _errors[-OB_ERR_TOO_MANY_SESSIONS] = &_error_OB_ERR_TOO_MANY_SESSIONS;
    _errors[-OB_ERR_TOO_MANY_PS] = &_error_OB_ERR_TOO_MANY_PS;
    _errors[-OB_ERR_HINT_UNKNOWN] = &_error_OB_ERR_HINT_UNKNOWN;
    _errors[-OB_ERR_WHEN_UNSATISFIED] = &_error_OB_ERR_WHEN_UNSATISFIED;
    _errors[-OB_ERR_QUERY_INTERRUPTED] = &_error_OB_ERR_QUERY_INTERRUPTED;
    _errors[-OB_ERR_SESSION_INTERRUPTED] = &_error_OB_ERR_SESSION_INTERRUPTED;
    _errors[-OB_ERR_UNKNOWN_SESSION_ID] = &_error_OB_ERR_UNKNOWN_SESSION_ID;
    _errors[-OB_ERR_PROTOCOL_NOT_RECOGNIZE] = &_error_OB_ERR_PROTOCOL_NOT_RECOGNIZE;
    _errors[-OB_ERR_WRITE_AUTH_ERROR] = &_error_OB_ERR_WRITE_AUTH_ERROR;
    _errors[-OB_ERR_PARSE_JOIN_INFO] = &_error_OB_ERR_PARSE_JOIN_INFO;
    _errors[-OB_ERR_ALTER_INDEX_COLUMN] = &_error_OB_ERR_ALTER_INDEX_COLUMN;
    _errors[-OB_ERR_MODIFY_INDEX_TABLE] = &_error_OB_ERR_MODIFY_INDEX_TABLE;
    _errors[-OB_ERR_INDEX_UNAVAILABLE] = &_error_OB_ERR_INDEX_UNAVAILABLE;
    _errors[-OB_ERR_NOP_VALUE] = &_error_OB_ERR_NOP_VALUE;
    _errors[-OB_ERR_PS_TOO_MANY_PARAM] = &_error_OB_ERR_PS_TOO_MANY_PARAM;
    _errors[-OB_ERR_READ_ONLY] = &_error_OB_ERR_READ_ONLY;
    _errors[-OB_ERR_INVALID_TYPE_FOR_OP] = &_error_OB_ERR_INVALID_TYPE_FOR_OP;
    _errors[-OB_ERR_CAST_VARCHAR_TO_BOOL] = &_error_OB_ERR_CAST_VARCHAR_TO_BOOL;
    _errors[-OB_ERR_CAST_VARCHAR_TO_NUMBER] = &_error_OB_ERR_CAST_VARCHAR_TO_NUMBER;
    _errors[-OB_ERR_CAST_VARCHAR_TO_TIME] = &_error_OB_ERR_CAST_VARCHAR_TO_TIME;
    _errors[-OB_ERR_CAST_NUMBER_OVERFLOW] = &_error_OB_ERR_CAST_NUMBER_OVERFLOW;
    _errors[-OB_INTEGER_PRECISION_OVERFLOW] = &_error_OB_INTEGER_PRECISION_OVERFLOW;
    _errors[-OB_DECIMAL_PRECISION_OVERFLOW] = &_error_OB_DECIMAL_PRECISION_OVERFLOW;
    _errors[-OB_SCHEMA_NUMBER_PRECISION_OVERFLOW] = &_error_OB_SCHEMA_NUMBER_PRECISION_OVERFLOW;
    _errors[-OB_SCHEMA_NUMBER_SCALE_OVERFLOW] = &_error_OB_SCHEMA_NUMBER_SCALE_OVERFLOW;
    _errors[-OB_ERR_INDEX_UNKNOWN] = &_error_OB_ERR_INDEX_UNKNOWN;
    _errors[-OB_NUMERIC_OVERFLOW] = &_error_OB_NUMERIC_OVERFLOW;
    _errors[-OB_ERR_TOO_MANY_JOIN_TABLES] = &_error_OB_ERR_TOO_MANY_JOIN_TABLES;
    _errors[-OB_ERR_DDL_ON_REMOTE_DATABASE] = &_error_OB_ERR_DDL_ON_REMOTE_DATABASE;
    _errors[-OB_ERR_MISSING_KEYWORD] = &_error_OB_ERR_MISSING_KEYWORD;
    _errors[-OB_ERR_DATABASE_LINK_EXPECTED] = &_error_OB_ERR_DATABASE_LINK_EXPECTED;
    _errors[-OB_ERR_VARCHAR_TOO_LONG] = &_error_OB_ERR_VARCHAR_TOO_LONG;
    _errors[-OB_ERR_SYS_CONFIG_UNKNOWN] = &_error_OB_ERR_SYS_CONFIG_UNKNOWN;
    _errors[-OB_ERR_LOCAL_VARIABLE] = &_error_OB_ERR_LOCAL_VARIABLE;
    _errors[-OB_ERR_GLOBAL_VARIABLE] = &_error_OB_ERR_GLOBAL_VARIABLE;
    _errors[-OB_ERR_VARIABLE_IS_READONLY] = &_error_OB_ERR_VARIABLE_IS_READONLY;
    _errors[-OB_ERR_INCORRECT_GLOBAL_LOCAL_VAR] = &_error_OB_ERR_INCORRECT_GLOBAL_LOCAL_VAR;
    _errors[-OB_ERR_EXPIRE_INFO_TOO_LONG] = &_error_OB_ERR_EXPIRE_INFO_TOO_LONG;
    _errors[-OB_ERR_EXPIRE_COND_TOO_LONG] = &_error_OB_ERR_EXPIRE_COND_TOO_LONG;
    _errors[-OB_INVALID_ARGUMENT_FOR_EXTRACT] = &_error_OB_INVALID_ARGUMENT_FOR_EXTRACT;
    _errors[-OB_INVALID_ARGUMENT_FOR_IS] = &_error_OB_INVALID_ARGUMENT_FOR_IS;
    _errors[-OB_INVALID_ARGUMENT_FOR_LENGTH] = &_error_OB_INVALID_ARGUMENT_FOR_LENGTH;
    _errors[-OB_INVALID_ARGUMENT_FOR_SUBSTR] = &_error_OB_INVALID_ARGUMENT_FOR_SUBSTR;
    _errors[-OB_INVALID_ARGUMENT_FOR_TIME_TO_USEC] = &_error_OB_INVALID_ARGUMENT_FOR_TIME_TO_USEC;
    _errors[-OB_INVALID_ARGUMENT_FOR_USEC_TO_TIME] = &_error_OB_INVALID_ARGUMENT_FOR_USEC_TO_TIME;
    _errors[-OB_ERR_USER_VARIABLE_UNKNOWN] = &_error_OB_ERR_USER_VARIABLE_UNKNOWN;
    _errors[-OB_ILLEGAL_USAGE_OF_MERGING_FROZEN_TIME] = &_error_OB_ILLEGAL_USAGE_OF_MERGING_FROZEN_TIME;
    _errors[-OB_INVALID_NUMERIC] = &_error_OB_INVALID_NUMERIC;
    _errors[-OB_ERR_REGEXP_ERROR] = &_error_OB_ERR_REGEXP_ERROR;
    _errors[-OB_SQL_LOG_OP_SETCHILD_OVERFLOW] = &_error_OB_SQL_LOG_OP_SETCHILD_OVERFLOW;
    _errors[-OB_SQL_EXPLAIN_FAILED] = &_error_OB_SQL_EXPLAIN_FAILED;
    _errors[-OB_SQL_OPT_COPY_OP_FAILED] = &_error_OB_SQL_OPT_COPY_OP_FAILED;
    _errors[-OB_SQL_OPT_GEN_PLAN_FALIED] = &_error_OB_SQL_OPT_GEN_PLAN_FALIED;
    _errors[-OB_SQL_OPT_CREATE_RAWEXPR_FAILED] = &_error_OB_SQL_OPT_CREATE_RAWEXPR_FAILED;
    _errors[-OB_SQL_OPT_JOIN_ORDER_FAILED] = &_error_OB_SQL_OPT_JOIN_ORDER_FAILED;
    _errors[-OB_SQL_OPT_ERROR] = &_error_OB_SQL_OPT_ERROR;
    _errors[-OB_ERR_OCI_INIT_TIMEZONE] = &_error_OB_ERR_OCI_INIT_TIMEZONE;
    _errors[-OB_ERR_ZLIB_DATA] = &_error_OB_ERR_ZLIB_DATA;
    _errors[-OB_ERR_DBLINK_SESSION_KILLED] = &_error_OB_ERR_DBLINK_SESSION_KILLED;
    _errors[-OB_SQL_RESOLVER_NO_MEMORY] = &_error_OB_SQL_RESOLVER_NO_MEMORY;
    _errors[-OB_SQL_DML_ONLY] = &_error_OB_SQL_DML_ONLY;
    _errors[-OB_ERR_NO_GRANT] = &_error_OB_ERR_NO_GRANT;
    _errors[-OB_ERR_NO_DB_SELECTED] = &_error_OB_ERR_NO_DB_SELECTED;
    _errors[-OB_SQL_PC_OVERFLOW] = &_error_OB_SQL_PC_OVERFLOW;
    _errors[-OB_SQL_PC_PLAN_DUPLICATE] = &_error_OB_SQL_PC_PLAN_DUPLICATE;
    _errors[-OB_SQL_PC_PLAN_EXPIRE] = &_error_OB_SQL_PC_PLAN_EXPIRE;
    _errors[-OB_SQL_PC_NOT_EXIST] = &_error_OB_SQL_PC_NOT_EXIST;
    _errors[-OB_SQL_PARAMS_LIMIT] = &_error_OB_SQL_PARAMS_LIMIT;
    _errors[-OB_SQL_PC_PLAN_SIZE_LIMIT] = &_error_OB_SQL_PC_PLAN_SIZE_LIMIT;
    _errors[-OB_ERR_UNKNOWN_CHARSET] = &_error_OB_ERR_UNKNOWN_CHARSET;
    _errors[-OB_ERR_UNKNOWN_COLLATION] = &_error_OB_ERR_UNKNOWN_COLLATION;
    _errors[-OB_ERR_COLLATION_MISMATCH] = &_error_OB_ERR_COLLATION_MISMATCH;
    _errors[-OB_ERR_WRONG_VALUE_FOR_VAR] = &_error_OB_ERR_WRONG_VALUE_FOR_VAR;
    _errors[-OB_UNKNOWN_PARTITION] = &_error_OB_UNKNOWN_PARTITION;
    _errors[-OB_PARTITION_NOT_MATCH] = &_error_OB_PARTITION_NOT_MATCH;
    _errors[-OB_ER_PASSWD_LENGTH] = &_error_OB_ER_PASSWD_LENGTH;
    _errors[-OB_ERR_INSERT_INNER_JOIN_COLUMN] = &_error_OB_ERR_INSERT_INNER_JOIN_COLUMN;
    _errors[-OB_TENANT_NOT_IN_SERVER] = &_error_OB_TENANT_NOT_IN_SERVER;
    _errors[-OB_TABLEGROUP_NOT_EXIST] = &_error_OB_TABLEGROUP_NOT_EXIST;
    _errors[-OB_SUBQUERY_TOO_MANY_ROW] = &_error_OB_SUBQUERY_TOO_MANY_ROW;
    _errors[-OB_ERR_BAD_DATABASE] = &_error_OB_ERR_BAD_DATABASE;
    _errors[-OB_CANNOT_USER] = &_error_OB_CANNOT_USER;
    _errors[-OB_TENANT_EXIST] = &_error_OB_TENANT_EXIST;
    _errors[-OB_TENANT_NOT_EXIST] = &_error_OB_TENANT_NOT_EXIST;
    _errors[-OB_DATABASE_EXIST] = &_error_OB_DATABASE_EXIST;
    _errors[-OB_TABLEGROUP_EXIST] = &_error_OB_TABLEGROUP_EXIST;
    _errors[-OB_ERR_INVALID_TENANT_NAME] = &_error_OB_ERR_INVALID_TENANT_NAME;
    _errors[-OB_EMPTY_TENANT] = &_error_OB_EMPTY_TENANT;
    _errors[-OB_WRONG_DB_NAME] = &_error_OB_WRONG_DB_NAME;
    _errors[-OB_WRONG_TABLE_NAME] = &_error_OB_WRONG_TABLE_NAME;
    _errors[-OB_WRONG_COLUMN_NAME] = &_error_OB_WRONG_COLUMN_NAME;
    _errors[-OB_ERR_COLUMN_SPEC] = &_error_OB_ERR_COLUMN_SPEC;
    _errors[-OB_ERR_DB_DROP_EXISTS] = &_error_OB_ERR_DB_DROP_EXISTS;
    _errors[-OB_ERR_DATA_TOO_LONG] = &_error_OB_ERR_DATA_TOO_LONG;
    _errors[-OB_ERR_WRONG_VALUE_COUNT_ON_ROW] = &_error_OB_ERR_WRONG_VALUE_COUNT_ON_ROW;
    _errors[-OB_ERR_CREATE_USER_WITH_GRANT] = &_error_OB_ERR_CREATE_USER_WITH_GRANT;
    _errors[-OB_ERR_NO_DB_PRIVILEGE] = &_error_OB_ERR_NO_DB_PRIVILEGE;
    _errors[-OB_ERR_NO_TABLE_PRIVILEGE] = &_error_OB_ERR_NO_TABLE_PRIVILEGE;
    _errors[-OB_INVALID_ON_UPDATE] = &_error_OB_INVALID_ON_UPDATE;
    _errors[-OB_INVALID_DEFAULT] = &_error_OB_INVALID_DEFAULT;
    _errors[-OB_ERR_UPDATE_TABLE_USED] = &_error_OB_ERR_UPDATE_TABLE_USED;
    _errors[-OB_ERR_COULUMN_VALUE_NOT_MATCH] = &_error_OB_ERR_COULUMN_VALUE_NOT_MATCH;
    _errors[-OB_ERR_INVALID_GROUP_FUNC_USE] = &_error_OB_ERR_INVALID_GROUP_FUNC_USE;
    _errors[-OB_CANT_AGGREGATE_2COLLATIONS] = &_error_OB_CANT_AGGREGATE_2COLLATIONS;
    _errors[-OB_ERR_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD] = &_error_OB_ERR_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD;
    _errors[-OB_ERR_TOO_LONG_IDENT] = &_error_OB_ERR_TOO_LONG_IDENT;
    _errors[-OB_ERR_WRONG_TYPE_FOR_VAR] = &_error_OB_ERR_WRONG_TYPE_FOR_VAR;
    _errors[-OB_WRONG_USER_NAME_LENGTH] = &_error_OB_WRONG_USER_NAME_LENGTH;
    _errors[-OB_ERR_PRIV_USAGE] = &_error_OB_ERR_PRIV_USAGE;
    _errors[-OB_ILLEGAL_GRANT_FOR_TABLE] = &_error_OB_ILLEGAL_GRANT_FOR_TABLE;
    _errors[-OB_ERR_REACH_AUTOINC_MAX] = &_error_OB_ERR_REACH_AUTOINC_MAX;
    _errors[-OB_ERR_NO_TABLES_USED] = &_error_OB_ERR_NO_TABLES_USED;
    _errors[-OB_CANT_REMOVE_ALL_FIELDS] = &_error_OB_CANT_REMOVE_ALL_FIELDS;
    _errors[-OB_TOO_MANY_PARTITIONS_ERROR] = &_error_OB_TOO_MANY_PARTITIONS_ERROR;
    _errors[-OB_NO_PARTS_ERROR] = &_error_OB_NO_PARTS_ERROR;
    _errors[-OB_WRONG_SUB_KEY] = &_error_OB_WRONG_SUB_KEY;
    _errors[-OB_KEY_PART_0] = &_error_OB_KEY_PART_0;
    _errors[-OB_ERR_UNKNOWN_TIME_ZONE] = &_error_OB_ERR_UNKNOWN_TIME_ZONE;
    _errors[-OB_ERR_WRONG_AUTO_KEY] = &_error_OB_ERR_WRONG_AUTO_KEY;
    _errors[-OB_ERR_TOO_MANY_KEYS] = &_error_OB_ERR_TOO_MANY_KEYS;
    _errors[-OB_ERR_TOO_MANY_ROWKEY_COLUMNS] = &_error_OB_ERR_TOO_MANY_ROWKEY_COLUMNS;
    _errors[-OB_ERR_TOO_LONG_KEY_LENGTH] = &_error_OB_ERR_TOO_LONG_KEY_LENGTH;
    _errors[-OB_ERR_TOO_MANY_COLUMNS] = &_error_OB_ERR_TOO_MANY_COLUMNS;
    _errors[-OB_ERR_TOO_LONG_COLUMN_LENGTH] = &_error_OB_ERR_TOO_LONG_COLUMN_LENGTH;
    _errors[-OB_ERR_TOO_BIG_ROWSIZE] = &_error_OB_ERR_TOO_BIG_ROWSIZE;
    _errors[-OB_ERR_UNKNOWN_TABLE] = &_error_OB_ERR_UNKNOWN_TABLE;
    _errors[-OB_ERR_BAD_TABLE] = &_error_OB_ERR_BAD_TABLE;
    _errors[-OB_ERR_TOO_BIG_SCALE] = &_error_OB_ERR_TOO_BIG_SCALE;
    _errors[-OB_ERR_TOO_BIG_PRECISION] = &_error_OB_ERR_TOO_BIG_PRECISION;
    _errors[-OB_ERR_M_BIGGER_THAN_D] = &_error_OB_ERR_M_BIGGER_THAN_D;
    _errors[-OB_ERR_TOO_BIG_DISPLAYWIDTH] = &_error_OB_ERR_TOO_BIG_DISPLAYWIDTH;
    _errors[-OB_WRONG_GROUP_FIELD] = &_error_OB_WRONG_GROUP_FIELD;
    _errors[-OB_NON_UNIQ_ERROR] = &_error_OB_NON_UNIQ_ERROR;
    _errors[-OB_ERR_NONUNIQ_TABLE] = &_error_OB_ERR_NONUNIQ_TABLE;
    _errors[-OB_ERR_CANT_DROP_FIELD_OR_KEY] = &_error_OB_ERR_CANT_DROP_FIELD_OR_KEY;
    _errors[-OB_ERR_MULTIPLE_PRI_KEY] = &_error_OB_ERR_MULTIPLE_PRI_KEY;
    _errors[-OB_ERR_KEY_COLUMN_DOES_NOT_EXITS] = &_error_OB_ERR_KEY_COLUMN_DOES_NOT_EXITS;
    _errors[-OB_ERR_AUTO_PARTITION_KEY] = &_error_OB_ERR_AUTO_PARTITION_KEY;
    _errors[-OB_ERR_CANT_USE_OPTION_HERE] = &_error_OB_ERR_CANT_USE_OPTION_HERE;
    _errors[-OB_ERR_WRONG_OBJECT] = &_error_OB_ERR_WRONG_OBJECT;
    _errors[-OB_ERR_ON_RENAME] = &_error_OB_ERR_ON_RENAME;
    _errors[-OB_ERR_WRONG_KEY_COLUMN] = &_error_OB_ERR_WRONG_KEY_COLUMN;
    _errors[-OB_ERR_BAD_FIELD_ERROR] = &_error_OB_ERR_BAD_FIELD_ERROR;
    _errors[-OB_ERR_WRONG_FIELD_WITH_GROUP] = &_error_OB_ERR_WRONG_FIELD_WITH_GROUP;
    _errors[-OB_ERR_CANT_CHANGE_TX_CHARACTERISTICS] = &_error_OB_ERR_CANT_CHANGE_TX_CHARACTERISTICS;
    _errors[-OB_ERR_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION] = &_error_OB_ERR_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION;
    _errors[-OB_ERR_MIX_OF_GROUP_FUNC_AND_FIELDS] = &_error_OB_ERR_MIX_OF_GROUP_FUNC_AND_FIELDS;
    _errors[-OB_ERR_TRUNCATED_WRONG_VALUE] = &_error_OB_ERR_TRUNCATED_WRONG_VALUE;
    _errors[-OB_ERR_WRONG_IDENT_NAME] = &_error_OB_ERR_WRONG_IDENT_NAME;
    _errors[-OB_WRONG_NAME_FOR_INDEX] = &_error_OB_WRONG_NAME_FOR_INDEX;
    _errors[-OB_ILLEGAL_REFERENCE] = &_error_OB_ILLEGAL_REFERENCE;
    _errors[-OB_REACH_MEMORY_LIMIT] = &_error_OB_REACH_MEMORY_LIMIT;
    _errors[-OB_ERR_PASSWORD_FORMAT] = &_error_OB_ERR_PASSWORD_FORMAT;
    _errors[-OB_ERR_NON_UPDATABLE_TABLE] = &_error_OB_ERR_NON_UPDATABLE_TABLE;
    _errors[-OB_ERR_WARN_DATA_OUT_OF_RANGE] = &_error_OB_ERR_WARN_DATA_OUT_OF_RANGE;
    _errors[-OB_ERR_WRONG_EXPR_IN_PARTITION_FUNC_ERROR] = &_error_OB_ERR_WRONG_EXPR_IN_PARTITION_FUNC_ERROR;
    _errors[-OB_ERR_VIEW_INVALID] = &_error_OB_ERR_VIEW_INVALID;
    _errors[-OB_ERR_OPTION_PREVENTS_STATEMENT] = &_error_OB_ERR_OPTION_PREVENTS_STATEMENT;
    _errors[-OB_ERR_DB_READ_ONLY] = &_error_OB_ERR_DB_READ_ONLY;
    _errors[-OB_ERR_TABLE_READ_ONLY] = &_error_OB_ERR_TABLE_READ_ONLY;
    _errors[-OB_ERR_LOCK_OR_ACTIVE_TRANSACTION] = &_error_OB_ERR_LOCK_OR_ACTIVE_TRANSACTION;
    _errors[-OB_ERR_SAME_NAME_PARTITION_FIELD] = &_error_OB_ERR_SAME_NAME_PARTITION_FIELD;
    _errors[-OB_ERR_TABLENAME_NOT_ALLOWED_HERE] = &_error_OB_ERR_TABLENAME_NOT_ALLOWED_HERE;
    _errors[-OB_ERR_VIEW_RECURSIVE] = &_error_OB_ERR_VIEW_RECURSIVE;
    _errors[-OB_ERR_QUALIFIER] = &_error_OB_ERR_QUALIFIER;
    _errors[-OB_ERR_WRONG_VALUE] = &_error_OB_ERR_WRONG_VALUE;
    _errors[-OB_ERR_VIEW_WRONG_LIST] = &_error_OB_ERR_VIEW_WRONG_LIST;
    _errors[-OB_SYS_VARS_MAYBE_DIFF_VERSION] = &_error_OB_SYS_VARS_MAYBE_DIFF_VERSION;
    _errors[-OB_ERR_AUTO_INCREMENT_CONFLICT] = &_error_OB_ERR_AUTO_INCREMENT_CONFLICT;
    _errors[-OB_ERR_TASK_SKIPPED] = &_error_OB_ERR_TASK_SKIPPED;
    _errors[-OB_ERR_NAME_BECOMES_EMPTY] = &_error_OB_ERR_NAME_BECOMES_EMPTY;
    _errors[-OB_ERR_REMOVED_SPACES] = &_error_OB_ERR_REMOVED_SPACES;
    _errors[-OB_WARN_ADD_AUTOINCREMENT_COLUMN] = &_error_OB_WARN_ADD_AUTOINCREMENT_COLUMN;
    _errors[-OB_WARN_CHAMGE_NULL_ATTRIBUTE] = &_error_OB_WARN_CHAMGE_NULL_ATTRIBUTE;
    _errors[-OB_ERR_INVALID_CHARACTER_STRING] = &_error_OB_ERR_INVALID_CHARACTER_STRING;
    _errors[-OB_ERR_KILL_DENIED] = &_error_OB_ERR_KILL_DENIED;
    _errors[-OB_ERR_COLUMN_DEFINITION_AMBIGUOUS] = &_error_OB_ERR_COLUMN_DEFINITION_AMBIGUOUS;
    _errors[-OB_ERR_EMPTY_QUERY] = &_error_OB_ERR_EMPTY_QUERY;
    _errors[-OB_ERR_CUT_VALUE_GROUP_CONCAT] = &_error_OB_ERR_CUT_VALUE_GROUP_CONCAT;
    _errors[-OB_ERR_FIELD_NOT_FOUND_PART] = &_error_OB_ERR_FIELD_NOT_FOUND_PART;
    _errors[-OB_ERR_PRIMARY_CANT_HAVE_NULL] = &_error_OB_ERR_PRIMARY_CANT_HAVE_NULL;
    _errors[-OB_ERR_PARTITION_FUNC_NOT_ALLOWED_ERROR] = &_error_OB_ERR_PARTITION_FUNC_NOT_ALLOWED_ERROR;
    _errors[-OB_ERR_INVALID_BLOCK_SIZE] = &_error_OB_ERR_INVALID_BLOCK_SIZE;
    _errors[-OB_ERR_UNKNOWN_STORAGE_ENGINE] = &_error_OB_ERR_UNKNOWN_STORAGE_ENGINE;
    _errors[-OB_ERR_TENANT_IS_LOCKED] = &_error_OB_ERR_TENANT_IS_LOCKED;
    _errors[-OB_EER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF] = &_error_OB_EER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF;
    _errors[-OB_ERR_PARTITION_FUNCTION_IS_NOT_ALLOWED] = &_error_OB_ERR_PARTITION_FUNCTION_IS_NOT_ALLOWED;
    _errors[-OB_ERR_AGGREGATE_ORDER_FOR_UNION] = &_error_OB_ERR_AGGREGATE_ORDER_FOR_UNION;
    _errors[-OB_ERR_OUTLINE_EXIST] = &_error_OB_ERR_OUTLINE_EXIST;
    _errors[-OB_OUTLINE_NOT_EXIST] = &_error_OB_OUTLINE_NOT_EXIST;
    _errors[-OB_WARN_OPTION_BELOW_LIMIT] = &_error_OB_WARN_OPTION_BELOW_LIMIT;
    _errors[-OB_INVALID_OUTLINE] = &_error_OB_INVALID_OUTLINE;
    _errors[-OB_REACH_MAX_CONCURRENT_NUM] = &_error_OB_REACH_MAX_CONCURRENT_NUM;
    _errors[-OB_ERR_OPERATION_ON_RECYCLE_OBJECT] = &_error_OB_ERR_OPERATION_ON_RECYCLE_OBJECT;
    _errors[-OB_ERR_OBJECT_NOT_IN_RECYCLEBIN] = &_error_OB_ERR_OBJECT_NOT_IN_RECYCLEBIN;
    _errors[-OB_ERR_CON_COUNT_ERROR] = &_error_OB_ERR_CON_COUNT_ERROR;
    _errors[-OB_ERR_OUTLINE_CONTENT_EXIST] = &_error_OB_ERR_OUTLINE_CONTENT_EXIST;
    _errors[-OB_ERR_OUTLINE_MAX_CONCURRENT_EXIST] = &_error_OB_ERR_OUTLINE_MAX_CONCURRENT_EXIST;
    _errors[-OB_ERR_VALUES_IS_NOT_INT_TYPE_ERROR] = &_error_OB_ERR_VALUES_IS_NOT_INT_TYPE_ERROR;
    _errors[-OB_ERR_WRONG_TYPE_COLUMN_VALUE_ERROR] = &_error_OB_ERR_WRONG_TYPE_COLUMN_VALUE_ERROR;
    _errors[-OB_ERR_PARTITION_COLUMN_LIST_ERROR] = &_error_OB_ERR_PARTITION_COLUMN_LIST_ERROR;
    _errors[-OB_ERR_TOO_MANY_VALUES_ERROR] = &_error_OB_ERR_TOO_MANY_VALUES_ERROR;
    _errors[-OB_ERR_PARTITION_VALUE_ERROR] = &_error_OB_ERR_PARTITION_VALUE_ERROR;
    _errors[-OB_ERR_PARTITION_INTERVAL_ERROR] = &_error_OB_ERR_PARTITION_INTERVAL_ERROR;
    _errors[-OB_ERR_SAME_NAME_PARTITION] = &_error_OB_ERR_SAME_NAME_PARTITION;
    _errors[-OB_ERR_RANGE_NOT_INCREASING_ERROR] = &_error_OB_ERR_RANGE_NOT_INCREASING_ERROR;
    _errors[-OB_ERR_PARSE_PARTITION_RANGE] = &_error_OB_ERR_PARSE_PARTITION_RANGE;
    _errors[-OB_ERR_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF] = &_error_OB_ERR_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF;
    _errors[-OB_NO_PARTITION_FOR_GIVEN_VALUE] = &_error_OB_NO_PARTITION_FOR_GIVEN_VALUE;
    _errors[-OB_EER_NULL_IN_VALUES_LESS_THAN] = &_error_OB_EER_NULL_IN_VALUES_LESS_THAN;
    _errors[-OB_ERR_PARTITION_CONST_DOMAIN_ERROR] = &_error_OB_ERR_PARTITION_CONST_DOMAIN_ERROR;
    _errors[-OB_ERR_TOO_MANY_PARTITION_FUNC_FIELDS] = &_error_OB_ERR_TOO_MANY_PARTITION_FUNC_FIELDS;
    _errors[-OB_ERR_BAD_FT_COLUMN] = &_error_OB_ERR_BAD_FT_COLUMN;
    _errors[-OB_ERR_KEY_DOES_NOT_EXISTS] = &_error_OB_ERR_KEY_DOES_NOT_EXISTS;
    _errors[-OB_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN] = &_error_OB_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN;
    _errors[-OB_ERR_BAD_CTXCAT_COLUMN] = &_error_OB_ERR_BAD_CTXCAT_COLUMN;
    _errors[-OB_ERR_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN] = &_error_OB_ERR_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN;
    _errors[-OB_ERR_DEPENDENT_BY_GENERATED_COLUMN] = &_error_OB_ERR_DEPENDENT_BY_GENERATED_COLUMN;
    _errors[-OB_ERR_TOO_MANY_ROWS] = &_error_OB_ERR_TOO_MANY_ROWS;
    _errors[-OB_WRONG_FIELD_TERMINATORS] = &_error_OB_WRONG_FIELD_TERMINATORS;
    _errors[-OB_NO_READABLE_REPLICA] = &_error_OB_NO_READABLE_REPLICA;
    _errors[-OB_ERR_UNEXPECTED_TZ_TRANSITION] = &_error_OB_ERR_UNEXPECTED_TZ_TRANSITION;
    _errors[-OB_ERR_SYNONYM_EXIST] = &_error_OB_ERR_SYNONYM_EXIST;
    _errors[-OB_SYNONYM_NOT_EXIST] = &_error_OB_SYNONYM_NOT_EXIST;
    _errors[-OB_ERR_MISS_ORDER_BY_EXPR] = &_error_OB_ERR_MISS_ORDER_BY_EXPR;
    _errors[-OB_ERR_NOT_CONST_EXPR] = &_error_OB_ERR_NOT_CONST_EXPR;
    _errors[-OB_ERR_PARTITION_MGMT_ON_NONPARTITIONED] = &_error_OB_ERR_PARTITION_MGMT_ON_NONPARTITIONED;
    _errors[-OB_ERR_DROP_PARTITION_NON_EXISTENT] = &_error_OB_ERR_DROP_PARTITION_NON_EXISTENT;
    _errors[-OB_ERR_PARTITION_MGMT_ON_TWOPART_TABLE] = &_error_OB_ERR_PARTITION_MGMT_ON_TWOPART_TABLE;
    _errors[-OB_ERR_ONLY_ON_RANGE_LIST_PARTITION] = &_error_OB_ERR_ONLY_ON_RANGE_LIST_PARTITION;
    _errors[-OB_ERR_DROP_LAST_PARTITION] = &_error_OB_ERR_DROP_LAST_PARTITION;
    _errors[-OB_ERR_PARALLEL_SERVERS_TARGET_NOT_ENOUGH] = &_error_OB_ERR_PARALLEL_SERVERS_TARGET_NOT_ENOUGH;
    _errors[-OB_ERR_IGNORE_USER_HOST_NAME] = &_error_OB_ERR_IGNORE_USER_HOST_NAME;
    _errors[-OB_IGNORE_SQL_IN_RESTORE] = &_error_OB_IGNORE_SQL_IN_RESTORE;
    _errors[-OB_ERR_TEMPORARY_TABLE_WITH_PARTITION] = &_error_OB_ERR_TEMPORARY_TABLE_WITH_PARTITION;
    _errors[-OB_ERR_INVALID_COLUMN_ID] = &_error_OB_ERR_INVALID_COLUMN_ID;
    _errors[-OB_SYNC_DDL_DUPLICATE] = &_error_OB_SYNC_DDL_DUPLICATE;
    _errors[-OB_SYNC_DDL_ERROR] = &_error_OB_SYNC_DDL_ERROR;
    _errors[-OB_ERR_ROW_IS_REFERENCED] = &_error_OB_ERR_ROW_IS_REFERENCED;
    _errors[-OB_ERR_NO_REFERENCED_ROW] = &_error_OB_ERR_NO_REFERENCED_ROW;
    _errors[-OB_ERR_FUNC_RESULT_TOO_LARGE] = &_error_OB_ERR_FUNC_RESULT_TOO_LARGE;
    _errors[-OB_ERR_CANNOT_ADD_FOREIGN] = &_error_OB_ERR_CANNOT_ADD_FOREIGN;
    _errors[-OB_ERR_WRONG_FK_DEF] = &_error_OB_ERR_WRONG_FK_DEF;
    _errors[-OB_ERR_INVALID_CHILD_COLUMN_LENGTH_FK] = &_error_OB_ERR_INVALID_CHILD_COLUMN_LENGTH_FK;
    _errors[-OB_ERR_ALTER_COLUMN_FK] = &_error_OB_ERR_ALTER_COLUMN_FK;
    _errors[-OB_ERR_CONNECT_BY_REQUIRED] = &_error_OB_ERR_CONNECT_BY_REQUIRED;
    _errors[-OB_ERR_INVALID_PSEUDO_COLUMN_PLACE] = &_error_OB_ERR_INVALID_PSEUDO_COLUMN_PLACE;
    _errors[-OB_ERR_NOCYCLE_REQUIRED] = &_error_OB_ERR_NOCYCLE_REQUIRED;
    _errors[-OB_ERR_CONNECT_BY_LOOP] = &_error_OB_ERR_CONNECT_BY_LOOP;
    _errors[-OB_ERR_INVALID_SIBLINGS] = &_error_OB_ERR_INVALID_SIBLINGS;
    _errors[-OB_ERR_INVALID_SEPARATOR] = &_error_OB_ERR_INVALID_SEPARATOR;
    _errors[-OB_ERR_INVALID_SYNONYM_NAME] = &_error_OB_ERR_INVALID_SYNONYM_NAME;
    _errors[-OB_ERR_LOOP_OF_SYNONYM] = &_error_OB_ERR_LOOP_OF_SYNONYM;
    _errors[-OB_ERR_SYNONYM_SAME_AS_OBJECT] = &_error_OB_ERR_SYNONYM_SAME_AS_OBJECT;
    _errors[-OB_ERR_SYNONYM_TRANSLATION_INVALID] = &_error_OB_ERR_SYNONYM_TRANSLATION_INVALID;
    _errors[-OB_ERR_EXIST_OBJECT] = &_error_OB_ERR_EXIST_OBJECT;
    _errors[-OB_ERR_ILLEGAL_VALUE_FOR_TYPE] = &_error_OB_ERR_ILLEGAL_VALUE_FOR_TYPE;
    _errors[-OB_ER_TOO_LONG_SET_ENUM_VALUE] = &_error_OB_ER_TOO_LONG_SET_ENUM_VALUE;
    _errors[-OB_ER_DUPLICATED_VALUE_IN_TYPE] = &_error_OB_ER_DUPLICATED_VALUE_IN_TYPE;
    _errors[-OB_ER_TOO_BIG_ENUM] = &_error_OB_ER_TOO_BIG_ENUM;
    _errors[-OB_ERR_TOO_BIG_SET] = &_error_OB_ERR_TOO_BIG_SET;
    _errors[-OB_ERR_WRONG_ROWID] = &_error_OB_ERR_WRONG_ROWID;
    _errors[-OB_ERR_INVALID_WINDOW_FUNCTION_PLACE] = &_error_OB_ERR_INVALID_WINDOW_FUNCTION_PLACE;
    _errors[-OB_ERR_PARSE_PARTITION_LIST] = &_error_OB_ERR_PARSE_PARTITION_LIST;
    _errors[-OB_ERR_MULTIPLE_DEF_CONST_IN_LIST_PART] = &_error_OB_ERR_MULTIPLE_DEF_CONST_IN_LIST_PART;
    _errors[-OB_ERR_INVALID_TIMEZONE_REGION_ID] = &_error_OB_ERR_INVALID_TIMEZONE_REGION_ID;
    _errors[-OB_ERR_INVALID_HEX_NUMBER] = &_error_OB_ERR_INVALID_HEX_NUMBER;
    _errors[-OB_ERR_WRONG_FUNC_ARGUMENTS_TYPE] = &_error_OB_ERR_WRONG_FUNC_ARGUMENTS_TYPE;
    _errors[-OB_ERR_MULTI_UPDATE_KEY_CONFLICT] = &_error_OB_ERR_MULTI_UPDATE_KEY_CONFLICT;
    _errors[-OB_ERR_INSUFFICIENT_PX_WORKER] = &_error_OB_ERR_INSUFFICIENT_PX_WORKER;
    _errors[-OB_ERR_FOR_UPDATE_EXPR_NOT_ALLOWED] = &_error_OB_ERR_FOR_UPDATE_EXPR_NOT_ALLOWED;
    _errors[-OB_ERR_WIN_FUNC_ARG_NOT_IN_PARTITION_BY] = &_error_OB_ERR_WIN_FUNC_ARG_NOT_IN_PARTITION_BY;
    _errors[-OB_ERR_TOO_LONG_STRING_IN_CONCAT] = &_error_OB_ERR_TOO_LONG_STRING_IN_CONCAT;
    _errors[-OB_ERR_WRONG_TIMESTAMP_LTZ_COLUMN_VALUE_ERROR] = &_error_OB_ERR_WRONG_TIMESTAMP_LTZ_COLUMN_VALUE_ERROR;
    _errors[-OB_ERR_UPD_CAUSE_PART_CHANGE] = &_error_OB_ERR_UPD_CAUSE_PART_CHANGE;
    _errors[-OB_ERR_INVALID_TYPE_FOR_ARGUMENT] = &_error_OB_ERR_INVALID_TYPE_FOR_ARGUMENT;
    _errors[-OB_ERR_FIELD_NOT_FOUND_IN_DATETIME_OR_INTERVAL] = &_error_OB_ERR_FIELD_NOT_FOUND_IN_DATETIME_OR_INTERVAL;
    _errors[-OB_ERR_ADD_PART_BOUN_NOT_INC] = &_error_OB_ERR_ADD_PART_BOUN_NOT_INC;
    _errors[-OB_ERR_DATA_TOO_LONG_IN_PART_CHECK] = &_error_OB_ERR_DATA_TOO_LONG_IN_PART_CHECK;
    _errors[-OB_ERR_WRONG_TYPE_COLUMN_VALUE_V2_ERROR] = &_error_OB_ERR_WRONG_TYPE_COLUMN_VALUE_V2_ERROR;
    _errors[-OB_CANT_AGGREGATE_3COLLATIONS] = &_error_OB_CANT_AGGREGATE_3COLLATIONS;
    _errors[-OB_CANT_AGGREGATE_NCOLLATIONS] = &_error_OB_CANT_AGGREGATE_NCOLLATIONS;
    _errors[-OB_ERR_DUPLICATED_UNIQUE_KEY] = &_error_OB_ERR_DUPLICATED_UNIQUE_KEY;
    _errors[-OB_DOUBLE_OVERFLOW] = &_error_OB_DOUBLE_OVERFLOW;
    _errors[-OB_ERR_NO_SYS_PRIVILEGE] = &_error_OB_ERR_NO_SYS_PRIVILEGE;
    _errors[-OB_ERR_NO_LOGIN_PRIVILEGE] = &_error_OB_ERR_NO_LOGIN_PRIVILEGE;
    _errors[-OB_ERR_CANNOT_REVOKE_PRIVILEGES_YOU_DID_NOT_GRANT] = &_error_OB_ERR_CANNOT_REVOKE_PRIVILEGES_YOU_DID_NOT_GRANT;
    _errors[-OB_ERR_SYSTEM_PRIVILEGES_NOT_GRANTED_TO] = &_error_OB_ERR_SYSTEM_PRIVILEGES_NOT_GRANTED_TO;
    _errors[-OB_ERR_ONLY_SELECT_AND_ALTER_PRIVILEGES_ARE_VALID_FOR_SEQUENCES] = &_error_OB_ERR_ONLY_SELECT_AND_ALTER_PRIVILEGES_ARE_VALID_FOR_SEQUENCES;
    _errors[-OB_ERR_EXECUTE_PRIVILEGE_NOT_ALLOWED_FOR_TABLES] = &_error_OB_ERR_EXECUTE_PRIVILEGE_NOT_ALLOWED_FOR_TABLES;
    _errors[-OB_ERR_ONLY_EXECUTE_AND_DEBUG_PRIVILEGES_ARE_VALID_FOR_PROCEDURES] = &_error_OB_ERR_ONLY_EXECUTE_AND_DEBUG_PRIVILEGES_ARE_VALID_FOR_PROCEDURES;
    _errors[-OB_ERR_ONLY_EXECUTE_DEBUG_AND_UNDER_PRIVILEGES_ARE_VALID_FOR_TYPES] = &_error_OB_ERR_ONLY_EXECUTE_DEBUG_AND_UNDER_PRIVILEGES_ARE_VALID_FOR_TYPES;
    _errors[-OB_ERR_ADMIN_OPTION_NOT_GRANTED_FOR_ROLE] = &_error_OB_ERR_ADMIN_OPTION_NOT_GRANTED_FOR_ROLE;
    _errors[-OB_ERR_USER_OR_ROLE_DOES_NOT_EXIST] = &_error_OB_ERR_USER_OR_ROLE_DOES_NOT_EXIST;
    _errors[-OB_ERR_MISSING_ON_KEYWORD] = &_error_OB_ERR_MISSING_ON_KEYWORD;
    _errors[-OB_ERR_NO_GRANT_OPTION] = &_error_OB_ERR_NO_GRANT_OPTION;
    _errors[-OB_ERR_ALTER_INDEX_AND_EXECUTE_NOT_ALLOWED_FOR_VIEWS] = &_error_OB_ERR_ALTER_INDEX_AND_EXECUTE_NOT_ALLOWED_FOR_VIEWS;
    _errors[-OB_ERR_CIRCULAR_ROLE_GRANT_DETECTED] = &_error_OB_ERR_CIRCULAR_ROLE_GRANT_DETECTED;
    _errors[-OB_ERR_INVALID_PRIVILEGE_ON_DIRECTORIES] = &_error_OB_ERR_INVALID_PRIVILEGE_ON_DIRECTORIES;
    _errors[-OB_ERR_DIRECTORY_ACCESS_DENIED] = &_error_OB_ERR_DIRECTORY_ACCESS_DENIED;
    _errors[-OB_ERR_MISSING_OR_INVALID_ROLE_NAME] = &_error_OB_ERR_MISSING_OR_INVALID_ROLE_NAME;
    _errors[-OB_ERR_ROLE_NOT_GRANTED_OR_DOES_NOT_EXIST] = &_error_OB_ERR_ROLE_NOT_GRANTED_OR_DOES_NOT_EXIST;
    _errors[-OB_ERR_DEFAULT_ROLE_NOT_GRANTED_TO_USER] = &_error_OB_ERR_DEFAULT_ROLE_NOT_GRANTED_TO_USER;
    _errors[-OB_ERR_ROLE_NOT_GRANTED_TO] = &_error_OB_ERR_ROLE_NOT_GRANTED_TO;
    _errors[-OB_ERR_CANNOT_GRANT_TO_A_ROLE_WITH_GRANT_OPTION] = &_error_OB_ERR_CANNOT_GRANT_TO_A_ROLE_WITH_GRANT_OPTION;
    _errors[-OB_ERR_DUPLICATE_USERNAME_IN_LIST] = &_error_OB_ERR_DUPLICATE_USERNAME_IN_LIST;
    _errors[-OB_ERR_CANNOT_GRANT_STRING_TO_A_ROLE] = &_error_OB_ERR_CANNOT_GRANT_STRING_TO_A_ROLE;
    _errors[-OB_ERR_CASCADE_CONSTRAINTS_MUST_BE_SPECIFIED_TO_PERFORM_THIS_REVOKE] = &_error_OB_ERR_CASCADE_CONSTRAINTS_MUST_BE_SPECIFIED_TO_PERFORM_THIS_REVOKE;
    _errors[-OB_ERR_YOU_MAY_NOT_REVOKE_PRIVILEGES_FROM_YOURSELF] = &_error_OB_ERR_YOU_MAY_NOT_REVOKE_PRIVILEGES_FROM_YOURSELF;
    _errors[-OB_ERR_MISS_ERR_LOG_MANDATORY_COLUMN] = &_error_OB_ERR_MISS_ERR_LOG_MANDATORY_COLUMN;
    _errors[-OB_TABLE_DEFINITION_CHANGED] = &_error_OB_TABLE_DEFINITION_CHANGED;
    _errors[-OB_ERR_NO_ROUTINE_PRIVILEGE] = &_error_OB_ERR_NO_ROUTINE_PRIVILEGE;
    _errors[-OB_ERR_USER_REFFERD_AS_DEFINER] = &_error_OB_ERR_USER_REFFERD_AS_DEFINER;
    _errors[-OB_ERR_OPERATION_ON_USER_REFERRED_AS_DEFINER] = &_error_OB_ERR_OPERATION_ON_USER_REFERRED_AS_DEFINER;
    _errors[-OB_ERR_NO_COLUMN_PRIVILEGE] = &_error_OB_ERR_NO_COLUMN_PRIVILEGE;
    _errors[-OB_ERR_OBJECT_STRING_DOES_NOT_EXIST] = &_error_OB_ERR_OBJECT_STRING_DOES_NOT_EXIST;
    _errors[-OB_ERR_RESULTANT_DATA_TYPE_OF_VIRTUAL_COLUMN_IS_NOT_SUPPORTED] = &_error_OB_ERR_RESULTANT_DATA_TYPE_OF_VIRTUAL_COLUMN_IS_NOT_SUPPORTED;
    _errors[-OB_ERR_GET_STACKED_DIAGNOSTICS] = &_error_OB_ERR_GET_STACKED_DIAGNOSTICS;
    _errors[-OB_DDL_SCHEMA_VERSION_NOT_MATCH] = &_error_OB_DDL_SCHEMA_VERSION_NOT_MATCH;
    _errors[-OB_ERR_COLUMN_GROUP_DUPLICATE] = &_error_OB_ERR_COLUMN_GROUP_DUPLICATE;
    _errors[-OB_ERR_RESERVED_SYNTAX] = &_error_OB_ERR_RESERVED_SYNTAX;
    _errors[-OB_ERR_INVALID_PARAM_TO_PROCEDURE] = &_error_OB_ERR_INVALID_PARAM_TO_PROCEDURE;
    _errors[-OB_ERR_WRONG_PARAMETERS_TO_NATIVE_FCT] = &_error_OB_ERR_WRONG_PARAMETERS_TO_NATIVE_FCT;
    _errors[-OB_ERR_CTE_MAX_RECURSION_DEPTH] = &_error_OB_ERR_CTE_MAX_RECURSION_DEPTH;
    _errors[-OB_DUPLICATE_OBJECT_NAME_EXIST] = &_error_OB_DUPLICATE_OBJECT_NAME_EXIST;
    _errors[-OB_ERR_REFRESH_SCHEMA_TOO_LONG] = &_error_OB_ERR_REFRESH_SCHEMA_TOO_LONG;
    _errors[-OB_ERR_INVALID_JSON_TEXT] = &_error_OB_ERR_INVALID_JSON_TEXT;
    _errors[-OB_ERR_INVALID_JSON_TEXT_IN_PARAM] = &_error_OB_ERR_INVALID_JSON_TEXT_IN_PARAM;
    _errors[-OB_ERR_INVALID_JSON_BINARY_DATA] = &_error_OB_ERR_INVALID_JSON_BINARY_DATA;
    _errors[-OB_ERR_INVALID_JSON_PATH] = &_error_OB_ERR_INVALID_JSON_PATH;
    _errors[-OB_ERR_INVALID_JSON_CHARSET] = &_error_OB_ERR_INVALID_JSON_CHARSET;
    _errors[-OB_ERR_INVALID_JSON_CHARSET_IN_FUNCTION] = &_error_OB_ERR_INVALID_JSON_CHARSET_IN_FUNCTION;
    _errors[-OB_ERR_INVALID_TYPE_FOR_JSON] = &_error_OB_ERR_INVALID_TYPE_FOR_JSON;
    _errors[-OB_ERR_INVALID_CAST_TO_JSON] = &_error_OB_ERR_INVALID_CAST_TO_JSON;
    _errors[-OB_ERR_INVALID_JSON_PATH_CHARSET] = &_error_OB_ERR_INVALID_JSON_PATH_CHARSET;
    _errors[-OB_ERR_INVALID_JSON_PATH_WILDCARD] = &_error_OB_ERR_INVALID_JSON_PATH_WILDCARD;
    _errors[-OB_ERR_JSON_VALUE_TOO_BIG] = &_error_OB_ERR_JSON_VALUE_TOO_BIG;
    _errors[-OB_ERR_JSON_KEY_TOO_BIG] = &_error_OB_ERR_JSON_KEY_TOO_BIG;
    _errors[-OB_ERR_JSON_USED_AS_KEY] = &_error_OB_ERR_JSON_USED_AS_KEY;
    _errors[-OB_ERR_JSON_VACUOUS_PATH] = &_error_OB_ERR_JSON_VACUOUS_PATH;
    _errors[-OB_ERR_JSON_BAD_ONE_OR_ALL_ARG] = &_error_OB_ERR_JSON_BAD_ONE_OR_ALL_ARG;
    _errors[-OB_ERR_NUMERIC_JSON_VALUE_OUT_OF_RANGE] = &_error_OB_ERR_NUMERIC_JSON_VALUE_OUT_OF_RANGE;
    _errors[-OB_ERR_INVALID_JSON_VALUE_FOR_CAST] = &_error_OB_ERR_INVALID_JSON_VALUE_FOR_CAST;
    _errors[-OB_ERR_JSON_OUT_OF_DEPTH] = &_error_OB_ERR_JSON_OUT_OF_DEPTH;
    _errors[-OB_ERR_JSON_DOCUMENT_NULL_KEY] = &_error_OB_ERR_JSON_DOCUMENT_NULL_KEY;
    _errors[-OB_ERR_BLOB_CANT_HAVE_DEFAULT] = &_error_OB_ERR_BLOB_CANT_HAVE_DEFAULT;
    _errors[-OB_ERR_INVALID_JSON_PATH_ARRAY_CELL] = &_error_OB_ERR_INVALID_JSON_PATH_ARRAY_CELL;
    _errors[-OB_ERR_MISSING_JSON_VALUE] = &_error_OB_ERR_MISSING_JSON_VALUE;
    _errors[-OB_ERR_MULTIPLE_JSON_VALUES] = &_error_OB_ERR_MULTIPLE_JSON_VALUES;
    _errors[-OB_SQL_RETRY_SPM] = &_error_OB_SQL_RETRY_SPM;
    _errors[-OB_OUTLINE_NOT_REPRODUCIBLE] = &_error_OB_OUTLINE_NOT_REPRODUCIBLE;
    _errors[-OB_INVALID_ARGUMENT_FOR_TIMESTAMP_TO_SCN] = &_error_OB_INVALID_ARGUMENT_FOR_TIMESTAMP_TO_SCN;
    _errors[-OB_INVALID_ARGUMENT_FOR_SCN_TO_TIMESTAMP] = &_error_OB_INVALID_ARGUMENT_FOR_SCN_TO_TIMESTAMP;
    _errors[-OB_EER_WINDOW_NO_CHILD_PARTITIONING] = &_error_OB_EER_WINDOW_NO_CHILD_PARTITIONING;
    _errors[-OB_EER_WINDOW_NO_INHERIT_FRAME] = &_error_OB_EER_WINDOW_NO_INHERIT_FRAME;
    _errors[-OB_EER_WINDOW_NO_REDEFINE_ORDER_BY] = &_error_OB_EER_WINDOW_NO_REDEFINE_ORDER_BY;
    _errors[-OB_ERR_INVALID_JSON_TYPE] = &_error_OB_ERR_INVALID_JSON_TYPE;
    _errors[-OB_ERR_JSON_PATH_SYNTAX_ERROR] = &_error_OB_ERR_JSON_PATH_SYNTAX_ERROR;
    _errors[-OB_ERR_INVALID_DATA_TYPE_RETURNING] = &_error_OB_ERR_INVALID_DATA_TYPE_RETURNING;
    _errors[-OB_ERR_JSON_VALUE_NO_SCALAR] = &_error_OB_ERR_JSON_VALUE_NO_SCALAR;
    _errors[-OB_ERR_JSON_VALUE_NO_VALUE] = &_error_OB_ERR_JSON_VALUE_NO_VALUE;
    _errors[-OB_ERR_DEFAULT_VALUE_NOT_LITERAL] = &_error_OB_ERR_DEFAULT_VALUE_NOT_LITERAL;
    _errors[-OB_ERR_JSON_SYNTAX_ERROR] = &_error_OB_ERR_JSON_SYNTAX_ERROR;
    _errors[-OB_ERR_JSON_EQUAL_OUTSIDE_PREDICATE] = &_error_OB_ERR_JSON_EQUAL_OUTSIDE_PREDICATE;
    _errors[-OB_ERR_WITHOUT_ARR_WRAPPER] = &_error_OB_ERR_WITHOUT_ARR_WRAPPER;
    _errors[-OB_ERR_JSON_PATCH_INVALID] = &_error_OB_ERR_JSON_PATCH_INVALID;
    _errors[-OB_ERR_ORDER_SIBLINGS_BY_NOT_ALLOWED] = &_error_OB_ERR_ORDER_SIBLINGS_BY_NOT_ALLOWED;
    _errors[-OB_ERR_LOB_TYPE_NOT_SORTING] = &_error_OB_ERR_LOB_TYPE_NOT_SORTING;
    _errors[-OB_ERR_DUPLICATE_KEY] = &_error_OB_ERR_DUPLICATE_KEY;
    _errors[-OB_ERR_JSON_PATH_EXPRESSION_SYNTAX_ERROR] = &_error_OB_ERR_JSON_PATH_EXPRESSION_SYNTAX_ERROR;
    _errors[-OB_ERR_JSON_ILLEGAL_ZERO_LENGTH_IDENTIFIER_ERROR] = &_error_OB_ERR_JSON_ILLEGAL_ZERO_LENGTH_IDENTIFIER_ERROR;
    _errors[-OB_ERR_NO_VALUE_IN_PASSING] = &_error_OB_ERR_NO_VALUE_IN_PASSING;
    _errors[-OB_ERR_INVALID_COLUMN_SPE] = &_error_OB_ERR_INVALID_COLUMN_SPE;
    _errors[-OB_ERR_INPUT_JSON_NOT_BE_NULL] = &_error_OB_ERR_INPUT_JSON_NOT_BE_NULL;
    _errors[-OB_ERR_INVALID_DATA_TYPE] = &_error_OB_ERR_INVALID_DATA_TYPE;
    _errors[-OB_ERR_INVALID_CLAUSE] = &_error_OB_ERR_INVALID_CLAUSE;
    _errors[-OB_ERR_INVALID_CMP_OP] = &_error_OB_ERR_INVALID_CMP_OP;
    _errors[-OB_ERR_INVALID_INPUT] = &_error_OB_ERR_INVALID_INPUT;
    _errors[-OB_ERR_EMPTY_INPUT_TO_JSON_OPERATOR] = &_error_OB_ERR_EMPTY_INPUT_TO_JSON_OPERATOR;
    _errors[-OB_ERR_ADDITIONAL_IS_JSON] = &_error_OB_ERR_ADDITIONAL_IS_JSON;
    _errors[-OB_ERR_FUNCTION_INVALID_STATE] = &_error_OB_ERR_FUNCTION_INVALID_STATE;
    _errors[-OB_ERR_MISS_VALUE] = &_error_OB_ERR_MISS_VALUE;
    _errors[-OB_ERR_DIFFERENT_TYPE_SELECTED] = &_error_OB_ERR_DIFFERENT_TYPE_SELECTED;
    _errors[-OB_ERR_NO_VALUE_SELECTED] = &_error_OB_ERR_NO_VALUE_SELECTED;
    _errors[-OB_ERR_NON_TEXT_RET_NOTSUPPORT] = &_error_OB_ERR_NON_TEXT_RET_NOTSUPPORT;
    _errors[-OB_ERR_PL_JSONTYPE_USAGE] = &_error_OB_ERR_PL_JSONTYPE_USAGE;
    _errors[-OB_ERR_NULL_INPUT] = &_error_OB_ERR_NULL_INPUT;
    _errors[-OB_ERR_NOT_ISO_8601_FORMAT] = &_error_OB_ERR_NOT_ISO_8601_FORMAT;
    _errors[-OB_ERR_VALUE_EXCEEDED_MAX] = &_error_OB_ERR_VALUE_EXCEEDED_MAX;
    _errors[-OB_ERR_DEFAULT_VALUE_NOT_MATCH] = &_error_OB_ERR_DEFAULT_VALUE_NOT_MATCH;
    _errors[-OB_ERR_BOOL_NOT_CONVERT_NUMBER] = &_error_OB_ERR_BOOL_NOT_CONVERT_NUMBER;
    _errors[-OB_ERR_CONVERSION_FAIL] = &_error_OB_ERR_CONVERSION_FAIL;
    _errors[-OB_ERR_NOT_OBJ_REF] = &_error_OB_ERR_NOT_OBJ_REF;
    _errors[-OB_ERR_UNSUPPORT_TRUNCATE_TYPE] = &_error_OB_ERR_UNSUPPORT_TRUNCATE_TYPE;
    _errors[-OB_ERR_UNIMPLEMENT_JSON_FEATURE] = &_error_OB_ERR_UNIMPLEMENT_JSON_FEATURE;
    _errors[-OB_ERR_USAGE_KEYWORD] = &_error_OB_ERR_USAGE_KEYWORD;
    _errors[-OB_ERR_INPUT_JSON_TABLE] = &_error_OB_ERR_INPUT_JSON_TABLE;
    _errors[-OB_ERR_BOOL_CAST_NUMBER] = &_error_OB_ERR_BOOL_CAST_NUMBER;
    _errors[-OB_ERR_NESTED_PATH_DISJUNCT] = &_error_OB_ERR_NESTED_PATH_DISJUNCT;
    _errors[-OB_ERR_INVALID_VARIABLE_IN_JSON_PATH] = &_error_OB_ERR_INVALID_VARIABLE_IN_JSON_PATH;
    _errors[-OB_ERR_JSON_KEY_NOT_FOUND] = &_error_OB_ERR_JSON_KEY_NOT_FOUND;
    _errors[-OB_ERR_INVALID_DEFAULT_VALUE_PROVIDED] = &_error_OB_ERR_INVALID_DEFAULT_VALUE_PROVIDED;
    _errors[-OB_ERR_PATH_EXPRESSION_NOT_LITERAL] = &_error_OB_ERR_PATH_EXPRESSION_NOT_LITERAL;
    _errors[-OB_ERR_INVALID_ARGUMENT_FOR_JSON_CALL] = &_error_OB_ERR_INVALID_ARGUMENT_FOR_JSON_CALL;
    _errors[-OB_ERR_SCHEMA_HISTORY_EMPTY] = &_error_OB_ERR_SCHEMA_HISTORY_EMPTY;
    _errors[-OB_ERR_TABLE_NAME_NOT_IN_LIST] = &_error_OB_ERR_TABLE_NAME_NOT_IN_LIST;
    _errors[-OB_ERR_DEFAULT_NOT_AT_LAST_IN_LIST_PART] = &_error_OB_ERR_DEFAULT_NOT_AT_LAST_IN_LIST_PART;
    _errors[-OB_ERR_MYSQL_CHARACTER_SET_MISMATCH] = &_error_OB_ERR_MYSQL_CHARACTER_SET_MISMATCH;
    _errors[-OB_ERR_RENAME_PARTITION_NAME_DUPLICATE] = &_error_OB_ERR_RENAME_PARTITION_NAME_DUPLICATE;
    _errors[-OB_ERR_RENAME_SUBPARTITION_NAME_DUPLICATE] = &_error_OB_ERR_RENAME_SUBPARTITION_NAME_DUPLICATE;
    _errors[-OB_ERR_INVALID_WAIT_INTERVAL] = &_error_OB_ERR_INVALID_WAIT_INTERVAL;
    _errors[-OB_ERR_FUNCTIONAL_INDEX_REF_AUTO_INCREMENT] = &_error_OB_ERR_FUNCTIONAL_INDEX_REF_AUTO_INCREMENT;
    _errors[-OB_ERR_DEPENDENT_BY_FUNCTIONAL_INDEX] = &_error_OB_ERR_DEPENDENT_BY_FUNCTIONAL_INDEX;
    _errors[-OB_ERR_FUNCTIONAL_INDEX_ON_LOB] = &_error_OB_ERR_FUNCTIONAL_INDEX_ON_LOB;
    _errors[-OB_ERR_FUNCTIONAL_INDEX_ON_FIELD] = &_error_OB_ERR_FUNCTIONAL_INDEX_ON_FIELD;
    _errors[-OB_ERR_GENCOL_LEGIT_CHECK_FAILED] = &_error_OB_ERR_GENCOL_LEGIT_CHECK_FAILED;
    _errors[-OB_ERR_GROUPING_FUNC_WITHOUT_GROUP_BY] = &_error_OB_ERR_GROUPING_FUNC_WITHOUT_GROUP_BY;
    _errors[-OB_ERR_DEPENDENT_BY_PARTITION_FUNC] = &_error_OB_ERR_DEPENDENT_BY_PARTITION_FUNC;
    _errors[-OB_ERR_VIEW_SELECT_CONTAIN_INTO] = &_error_OB_ERR_VIEW_SELECT_CONTAIN_INTO;
    _errors[-OB_ERR_DEFAULT_NOT_ALLOWED] = &_error_OB_ERR_DEFAULT_NOT_ALLOWED;
    _errors[-OB_ERR_MODIFY_REALCOL_TO_GENCOL] = &_error_OB_ERR_MODIFY_REALCOL_TO_GENCOL;
    _errors[-OB_ERR_MODIFY_TYPE_OF_GENCOL] = &_error_OB_ERR_MODIFY_TYPE_OF_GENCOL;
    _errors[-OB_ERR_WINDOW_FRAME_ILLEGAL] = &_error_OB_ERR_WINDOW_FRAME_ILLEGAL;
    _errors[-OB_ERR_WINDOW_RANGE_FRAME_TEMPORAL_TYPE] = &_error_OB_ERR_WINDOW_RANGE_FRAME_TEMPORAL_TYPE;
    _errors[-OB_ERR_WINDOW_RANGE_FRAME_NUMERIC_TYPE] = &_error_OB_ERR_WINDOW_RANGE_FRAME_NUMERIC_TYPE;
    _errors[-OB_ERR_WINDOW_RANGE_BOUND_NOT_CONSTANT] = &_error_OB_ERR_WINDOW_RANGE_BOUND_NOT_CONSTANT;
    _errors[-OB_ERR_DEFAULT_FOR_MODIFYING_VIEWS] = &_error_OB_ERR_DEFAULT_FOR_MODIFYING_VIEWS;
    _errors[-OB_ERR_FK_COLUMN_NOT_NULL] = &_error_OB_ERR_FK_COLUMN_NOT_NULL;
    _errors[-OB_ERR_UNSUPPORTED_FK_SET_NULL_ON_GENERATED_COLUMN] = &_error_OB_ERR_UNSUPPORTED_FK_SET_NULL_ON_GENERATED_COLUMN;
    _errors[-OB_JSON_PROCESSING_ERROR] = &_error_OB_JSON_PROCESSING_ERROR;
    _errors[-OB_ERR_TABLE_WITHOUT_ALIAS] = &_error_OB_ERR_TABLE_WITHOUT_ALIAS;
    _errors[-OB_ERR_DEPRECATED_SYNTAX] = &_error_OB_ERR_DEPRECATED_SYNTAX;
    _errors[-OB_ERR_NON_STRING_NOT_SUPPORT] = &_error_OB_ERR_NON_STRING_NOT_SUPPORT;
    _errors[-OB_ERR_DEPRECATED_SYNTAX_NO_REP] = &_error_OB_ERR_DEPRECATED_SYNTAX_NO_REP;
    _errors[-OB_ERR_SESSION_VAR_CHANGED] = &_error_OB_ERR_SESSION_VAR_CHANGED;
    _errors[-OB_ERR_SP_ALREADY_EXISTS] = &_error_OB_ERR_SP_ALREADY_EXISTS;
    _errors[-OB_ERR_SP_DOES_NOT_EXIST] = &_error_OB_ERR_SP_DOES_NOT_EXIST;
    _errors[-OB_ERR_SP_UNDECLARED_VAR] = &_error_OB_ERR_SP_UNDECLARED_VAR;
    _errors[-OB_ERR_SP_UNDECLARED_TYPE] = &_error_OB_ERR_SP_UNDECLARED_TYPE;
    _errors[-OB_ERR_SP_COND_MISMATCH] = &_error_OB_ERR_SP_COND_MISMATCH;
    _errors[-OB_ERR_SP_LILABEL_MISMATCH] = &_error_OB_ERR_SP_LILABEL_MISMATCH;
    _errors[-OB_ERR_SP_CURSOR_MISMATCH] = &_error_OB_ERR_SP_CURSOR_MISMATCH;
    _errors[-OB_ERR_SP_DUP_PARAM] = &_error_OB_ERR_SP_DUP_PARAM;
    _errors[-OB_ERR_SP_DUP_VAR] = &_error_OB_ERR_SP_DUP_VAR;
    _errors[-OB_ERR_SP_DUP_TYPE] = &_error_OB_ERR_SP_DUP_TYPE;
    _errors[-OB_ERR_SP_DUP_CONDITION] = &_error_OB_ERR_SP_DUP_CONDITION;
    _errors[-OB_ERR_SP_DUP_LABEL] = &_error_OB_ERR_SP_DUP_LABEL;
    _errors[-OB_ERR_SP_DUP_CURSOR] = &_error_OB_ERR_SP_DUP_CURSOR;
    _errors[-OB_ERR_SP_INVALID_FETCH_ARG] = &_error_OB_ERR_SP_INVALID_FETCH_ARG;
    _errors[-OB_ERR_SP_WRONG_ARG_NUM] = &_error_OB_ERR_SP_WRONG_ARG_NUM;
    _errors[-OB_ERR_SP_UNHANDLED_EXCEPTION] = &_error_OB_ERR_SP_UNHANDLED_EXCEPTION;
    _errors[-OB_ERR_SP_BAD_CONDITION_TYPE] = &_error_OB_ERR_SP_BAD_CONDITION_TYPE;
    _errors[-OB_ERR_PACKAGE_ALREADY_EXISTS] = &_error_OB_ERR_PACKAGE_ALREADY_EXISTS;
    _errors[-OB_ERR_PACKAGE_DOSE_NOT_EXIST] = &_error_OB_ERR_PACKAGE_DOSE_NOT_EXIST;
    _errors[-OB_EER_UNKNOWN_STMT_HANDLER] = &_error_OB_EER_UNKNOWN_STMT_HANDLER;
    _errors[-OB_ERR_INVALID_WINDOW_FUNC_USE] = &_error_OB_ERR_INVALID_WINDOW_FUNC_USE;
    _errors[-OB_ERR_CONSTRAINT_DUPLICATE] = &_error_OB_ERR_CONSTRAINT_DUPLICATE;
    _errors[-OB_ERR_CONTRAINT_NOT_FOUND] = &_error_OB_ERR_CONTRAINT_NOT_FOUND;
    _errors[-OB_ERR_ALTER_TABLE_ALTER_DUPLICATED_INDEX] = &_error_OB_ERR_ALTER_TABLE_ALTER_DUPLICATED_INDEX;
    _errors[-OB_EER_INVALID_ARGUMENT_FOR_LOGARITHM] = &_error_OB_EER_INVALID_ARGUMENT_FOR_LOGARITHM;
    _errors[-OB_ERR_REORGANIZE_OUTSIDE_RANGE] = &_error_OB_ERR_REORGANIZE_OUTSIDE_RANGE;
    _errors[-OB_ER_SP_RECURSION_LIMIT] = &_error_OB_ER_SP_RECURSION_LIMIT;
    _errors[-OB_ER_UNSUPPORTED_PS] = &_error_OB_ER_UNSUPPORTED_PS;
    _errors[-OB_ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG] = &_error_OB_ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG;
    _errors[-OB_ER_SP_NO_RECURSION] = &_error_OB_ER_SP_NO_RECURSION;
    _errors[-OB_ER_SP_CASE_NOT_FOUND] = &_error_OB_ER_SP_CASE_NOT_FOUND;
    _errors[-OB_ERR_INVALID_SPLIT_COUNT] = &_error_OB_ERR_INVALID_SPLIT_COUNT;
    _errors[-OB_ERR_INVALID_SPLIT_GRAMMAR] = &_error_OB_ERR_INVALID_SPLIT_GRAMMAR;
    _errors[-OB_ERR_MISS_VALUES] = &_error_OB_ERR_MISS_VALUES;
    _errors[-OB_ERR_MISS_AT_VALUES] = &_error_OB_ERR_MISS_AT_VALUES;
    _errors[-OB_ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG] = &_error_OB_ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG;
    _errors[-OB_PC_GET_LOCATION_ERROR] = &_error_OB_PC_GET_LOCATION_ERROR;
    _errors[-OB_PC_LOCK_CONFLICT] = &_error_OB_PC_LOCK_CONFLICT;
    _errors[-OB_ER_SP_NO_RETSET] = &_error_OB_ER_SP_NO_RETSET;
    _errors[-OB_ER_SP_NORETURNEND] = &_error_OB_ER_SP_NORETURNEND;
    _errors[-OB_ERR_SP_DUP_HANDLER] = &_error_OB_ERR_SP_DUP_HANDLER;
    _errors[-OB_ER_SP_NO_RECURSIVE_CREATE] = &_error_OB_ER_SP_NO_RECURSIVE_CREATE;
    _errors[-OB_ER_SP_BADRETURN] = &_error_OB_ER_SP_BADRETURN;
    _errors[-OB_ER_SP_BAD_CURSOR_SELECT] = &_error_OB_ER_SP_BAD_CURSOR_SELECT;
    _errors[-OB_ER_SP_BAD_SQLSTATE] = &_error_OB_ER_SP_BAD_SQLSTATE;
    _errors[-OB_ER_SP_VARCOND_AFTER_CURSHNDLR] = &_error_OB_ER_SP_VARCOND_AFTER_CURSHNDLR;
    _errors[-OB_ER_SP_CURSOR_AFTER_HANDLER] = &_error_OB_ER_SP_CURSOR_AFTER_HANDLER;
    _errors[-OB_ER_SP_WRONG_NAME] = &_error_OB_ER_SP_WRONG_NAME;
    _errors[-OB_ER_SP_CURSOR_ALREADY_OPEN] = &_error_OB_ER_SP_CURSOR_ALREADY_OPEN;
    _errors[-OB_ER_SP_CURSOR_NOT_OPEN] = &_error_OB_ER_SP_CURSOR_NOT_OPEN;
    _errors[-OB_ER_SP_CANT_SET_AUTOCOMMIT] = &_error_OB_ER_SP_CANT_SET_AUTOCOMMIT;
    _errors[-OB_ER_SP_NOT_VAR_ARG] = &_error_OB_ER_SP_NOT_VAR_ARG;
    _errors[-OB_ER_SP_LILABEL_MISMATCH] = &_error_OB_ER_SP_LILABEL_MISMATCH;
    _errors[-OB_ERR_TRUNCATE_ILLEGAL_FK] = &_error_OB_ERR_TRUNCATE_ILLEGAL_FK;
    _errors[-OB_ERR_DUP_KEY] = &_error_OB_ERR_DUP_KEY;
    _errors[-OB_ER_INVALID_USE_OF_NULL] = &_error_OB_ER_INVALID_USE_OF_NULL;
    _errors[-OB_ERR_SPLIT_LIST_LESS_VALUE] = &_error_OB_ERR_SPLIT_LIST_LESS_VALUE;
    _errors[-OB_ERR_ADD_PARTITION_TO_DEFAULT_LIST] = &_error_OB_ERR_ADD_PARTITION_TO_DEFAULT_LIST;
    _errors[-OB_ERR_SPLIT_INTO_ONE_PARTITION] = &_error_OB_ERR_SPLIT_INTO_ONE_PARTITION;
    _errors[-OB_ERR_NO_TENANT_PRIVILEGE] = &_error_OB_ERR_NO_TENANT_PRIVILEGE;
    _errors[-OB_ERR_INVALID_PERCENTAGE] = &_error_OB_ERR_INVALID_PERCENTAGE;
    _errors[-OB_ERR_COLLECT_HISTOGRAM] = &_error_OB_ERR_COLLECT_HISTOGRAM;
    _errors[-OB_ER_TEMP_TABLE_IN_USE] = &_error_OB_ER_TEMP_TABLE_IN_USE;
    _errors[-OB_ERR_INVALID_NLS_PARAMETER_STRING] = &_error_OB_ERR_INVALID_NLS_PARAMETER_STRING;
    _errors[-OB_ERR_DATETIME_INTERVAL_PRECISION_OUT_OF_RANGE] = &_error_OB_ERR_DATETIME_INTERVAL_PRECISION_OUT_OF_RANGE;
    _errors[-OB_ERR_CMD_NOT_PROPERLY_ENDED] = &_error_OB_ERR_CMD_NOT_PROPERLY_ENDED;
    _errors[-OB_ERR_INVALID_NUMBER_FORMAT_MODEL] = &_error_OB_ERR_INVALID_NUMBER_FORMAT_MODEL;
    _errors[-OB_WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED] = &_error_OB_WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED;
    _errors[-OB_WARN_AMBIGUOUS_FIELD_TERM] = &_error_OB_WARN_AMBIGUOUS_FIELD_TERM;
    _errors[-OB_WARN_TOO_FEW_RECORDS] = &_error_OB_WARN_TOO_FEW_RECORDS;
    _errors[-OB_WARN_TOO_MANY_RECORDS] = &_error_OB_WARN_TOO_MANY_RECORDS;
    _errors[-OB_ERR_TOO_MANY_VALUES] = &_error_OB_ERR_TOO_MANY_VALUES;
    _errors[-OB_ERR_NOT_ENOUGH_VALUES] = &_error_OB_ERR_NOT_ENOUGH_VALUES;
    _errors[-OB_ERR_MORE_THAN_ONE_ROW] = &_error_OB_ERR_MORE_THAN_ONE_ROW;
    _errors[-OB_ERR_NOT_SUBQUERY] = &_error_OB_ERR_NOT_SUBQUERY;
    _errors[-OB_INAPPROPRIATE_INTO] = &_error_OB_INAPPROPRIATE_INTO;
    _errors[-OB_ERR_TABLE_IS_REFERENCED] = &_error_OB_ERR_TABLE_IS_REFERENCED;
    _errors[-OB_ERR_QUALIFIER_EXISTS_FOR_USING_COLUMN] = &_error_OB_ERR_QUALIFIER_EXISTS_FOR_USING_COLUMN;
    _errors[-OB_ERR_OUTER_JOIN_NESTED] = &_error_OB_ERR_OUTER_JOIN_NESTED;
    _errors[-OB_ERR_MULTI_OUTER_JOIN_TABLE] = &_error_OB_ERR_MULTI_OUTER_JOIN_TABLE;
    _errors[-OB_ERR_OUTER_JOIN_ON_CORRELATION_COLUMN] = &_error_OB_ERR_OUTER_JOIN_ON_CORRELATION_COLUMN;
    _errors[-OB_ERR_OUTER_JOIN_AMBIGUOUS] = &_error_OB_ERR_OUTER_JOIN_AMBIGUOUS;
    _errors[-OB_ERR_OUTER_JOIN_WITH_SUBQUERY] = &_error_OB_ERR_OUTER_JOIN_WITH_SUBQUERY;
    _errors[-OB_ERR_OUTER_JOIN_WITH_ANSI_JOIN] = &_error_OB_ERR_OUTER_JOIN_WITH_ANSI_JOIN;
    _errors[-OB_ERR_OUTER_JOIN_NOT_ALLOWED] = &_error_OB_ERR_OUTER_JOIN_NOT_ALLOWED;
    _errors[-OB_SCHEMA_EAGAIN] = &_error_OB_SCHEMA_EAGAIN;
    _errors[-OB_ERR_ZERO_LEN_COL] = &_error_OB_ERR_ZERO_LEN_COL;
    _errors[-OB_ERR_YEAR_CONFLICTS_WITH_JULIAN_DATE] = &_error_OB_ERR_YEAR_CONFLICTS_WITH_JULIAN_DATE;
    _errors[-OB_ERR_DAY_OF_YEAR_CONFLICTS_WITH_JULIAN_DATE] = &_error_OB_ERR_DAY_OF_YEAR_CONFLICTS_WITH_JULIAN_DATE;
    _errors[-OB_ERR_MONTH_CONFLICTS_WITH_JULIAN_DATE] = &_error_OB_ERR_MONTH_CONFLICTS_WITH_JULIAN_DATE;
    _errors[-OB_ERR_DAY_OF_MONTH_CONFLICTS_WITH_JULIAN_DATE] = &_error_OB_ERR_DAY_OF_MONTH_CONFLICTS_WITH_JULIAN_DATE;
    _errors[-OB_ERR_DAY_OF_WEEK_CONFLICTS_WITH_JULIAN_DATE] = &_error_OB_ERR_DAY_OF_WEEK_CONFLICTS_WITH_JULIAN_DATE;
    _errors[-OB_ERR_HOUR_CONFLICTS_WITH_SECONDS_IN_DAY] = &_error_OB_ERR_HOUR_CONFLICTS_WITH_SECONDS_IN_DAY;
    _errors[-OB_ERR_MINUTES_OF_HOUR_CONFLICTS_WITH_SECONDS_IN_DAY] = &_error_OB_ERR_MINUTES_OF_HOUR_CONFLICTS_WITH_SECONDS_IN_DAY;
    _errors[-OB_ERR_SECONDS_OF_MINUTE_CONFLICTS_WITH_SECONDS_IN_DAY] = &_error_OB_ERR_SECONDS_OF_MINUTE_CONFLICTS_WITH_SECONDS_IN_DAY;
    _errors[-OB_ERR_DATE_NOT_VALID_FOR_MONTH_SPECIFIED] = &_error_OB_ERR_DATE_NOT_VALID_FOR_MONTH_SPECIFIED;
    _errors[-OB_ERR_INPUT_VALUE_NOT_LONG_ENOUGH] = &_error_OB_ERR_INPUT_VALUE_NOT_LONG_ENOUGH;
    _errors[-OB_ERR_INVALID_YEAR_VALUE] = &_error_OB_ERR_INVALID_YEAR_VALUE;
    _errors[-OB_ERR_INVALID_QUARTER_VALUE] = &_error_OB_ERR_INVALID_QUARTER_VALUE;
    _errors[-OB_ERR_INVALID_MONTH] = &_error_OB_ERR_INVALID_MONTH;
    _errors[-OB_ERR_INVALID_DAY_OF_THE_WEEK] = &_error_OB_ERR_INVALID_DAY_OF_THE_WEEK;
    _errors[-OB_ERR_INVALID_DAY_OF_YEAR_VALUE] = &_error_OB_ERR_INVALID_DAY_OF_YEAR_VALUE;
    _errors[-OB_ERR_INVALID_HOUR12_VALUE] = &_error_OB_ERR_INVALID_HOUR12_VALUE;
    _errors[-OB_ERR_INVALID_HOUR24_VALUE] = &_error_OB_ERR_INVALID_HOUR24_VALUE;
    _errors[-OB_ERR_INVALID_MINUTES_VALUE] = &_error_OB_ERR_INVALID_MINUTES_VALUE;
    _errors[-OB_ERR_INVALID_SECONDS_VALUE] = &_error_OB_ERR_INVALID_SECONDS_VALUE;
    _errors[-OB_ERR_INVALID_SECONDS_IN_DAY_VALUE] = &_error_OB_ERR_INVALID_SECONDS_IN_DAY_VALUE;
    _errors[-OB_ERR_INVALID_JULIAN_DATE_VALUE] = &_error_OB_ERR_INVALID_JULIAN_DATE_VALUE;
    _errors[-OB_ERR_AM_OR_PM_REQUIRED] = &_error_OB_ERR_AM_OR_PM_REQUIRED;
    _errors[-OB_ERR_BC_OR_AD_REQUIRED] = &_error_OB_ERR_BC_OR_AD_REQUIRED;
    _errors[-OB_ERR_FORMAT_CODE_APPEARS_TWICE] = &_error_OB_ERR_FORMAT_CODE_APPEARS_TWICE;
    _errors[-OB_ERR_DAY_OF_WEEK_SPECIFIED_MORE_THAN_ONCE] = &_error_OB_ERR_DAY_OF_WEEK_SPECIFIED_MORE_THAN_ONCE;
    _errors[-OB_ERR_SIGNED_YEAR_PRECLUDES_USE_OF_BC_AD] = &_error_OB_ERR_SIGNED_YEAR_PRECLUDES_USE_OF_BC_AD;
    _errors[-OB_ERR_JULIAN_DATE_PRECLUDES_USE_OF_DAY_OF_YEAR] = &_error_OB_ERR_JULIAN_DATE_PRECLUDES_USE_OF_DAY_OF_YEAR;
    _errors[-OB_ERR_YEAR_MAY_ONLY_BE_SPECIFIED_ONCE] = &_error_OB_ERR_YEAR_MAY_ONLY_BE_SPECIFIED_ONCE;
    _errors[-OB_ERR_HOUR_MAY_ONLY_BE_SPECIFIED_ONCE] = &_error_OB_ERR_HOUR_MAY_ONLY_BE_SPECIFIED_ONCE;
    _errors[-OB_ERR_AM_PM_CONFLICTS_WITH_USE_OF_AM_DOT_PM_DOT] = &_error_OB_ERR_AM_PM_CONFLICTS_WITH_USE_OF_AM_DOT_PM_DOT;
    _errors[-OB_ERR_BC_AD_CONFLICT_WITH_USE_OF_BC_DOT_AD_DOT] = &_error_OB_ERR_BC_AD_CONFLICT_WITH_USE_OF_BC_DOT_AD_DOT;
    _errors[-OB_ERR_MONTH_MAY_ONLY_BE_SPECIFIED_ONCE] = &_error_OB_ERR_MONTH_MAY_ONLY_BE_SPECIFIED_ONCE;
    _errors[-OB_ERR_DAY_OF_WEEK_MAY_ONLY_BE_SPECIFIED_ONCE] = &_error_OB_ERR_DAY_OF_WEEK_MAY_ONLY_BE_SPECIFIED_ONCE;
    _errors[-OB_ERR_FORMAT_CODE_CANNOT_APPEAR] = &_error_OB_ERR_FORMAT_CODE_CANNOT_APPEAR;
    _errors[-OB_ERR_NON_NUMERIC_CHARACTER_VALUE] = &_error_OB_ERR_NON_NUMERIC_CHARACTER_VALUE;
    _errors[-OB_INVALID_MERIDIAN_INDICATOR_USE] = &_error_OB_INVALID_MERIDIAN_INDICATOR_USE;
    _errors[-OB_ERR_INVALID_CHAR_FOLLOWING_ESCAPE_CHAR] = &_error_OB_ERR_INVALID_CHAR_FOLLOWING_ESCAPE_CHAR;
    _errors[-OB_ERR_INVALID_ESCAPE_CHAR_LENGTH] = &_error_OB_ERR_INVALID_ESCAPE_CHAR_LENGTH;
    _errors[-OB_ERR_DAY_OF_MONTH_RANGE] = &_error_OB_ERR_DAY_OF_MONTH_RANGE;
    _errors[-OB_ERR_NOT_SELECTED_EXPR] = &_error_OB_ERR_NOT_SELECTED_EXPR;
    _errors[-OB_ERR_UK_PK_DUPLICATE] = &_error_OB_ERR_UK_PK_DUPLICATE;
    _errors[-OB_ERR_COLUMN_LIST_ALREADY_INDEXED] = &_error_OB_ERR_COLUMN_LIST_ALREADY_INDEXED;
    _errors[-OB_ERR_BUSHY_TREE_NOT_SUPPORTED] = &_error_OB_ERR_BUSHY_TREE_NOT_SUPPORTED;
    _errors[-OB_ERR_ARGUMENT_OUT_OF_RANGE] = &_error_OB_ERR_ARGUMENT_OUT_OF_RANGE;
    _errors[-OB_ERR_ORDER_BY_ITEM_NOT_IN_SELECT_LIST] = &_error_OB_ERR_ORDER_BY_ITEM_NOT_IN_SELECT_LIST;
    _errors[-OB_ERR_INTERVAL_INVALID] = &_error_OB_ERR_INTERVAL_INVALID;
    _errors[-OB_ERR_NUMERIC_OR_VALUE_ERROR] = &_error_OB_ERR_NUMERIC_OR_VALUE_ERROR;
    _errors[-OB_ERR_CONSTRAINT_NAME_DUPLICATE] = &_error_OB_ERR_CONSTRAINT_NAME_DUPLICATE;
    _errors[-OB_ERR_ONLY_HAVE_INVISIBLE_COL_IN_TABLE] = &_error_OB_ERR_ONLY_HAVE_INVISIBLE_COL_IN_TABLE;
    _errors[-OB_ERR_INVISIBLE_COL_ON_UNSUPPORTED_TABLE_TYPE] = &_error_OB_ERR_INVISIBLE_COL_ON_UNSUPPORTED_TABLE_TYPE;
    _errors[-OB_ERR_MODIFY_COL_VISIBILITY_COMBINED_WITH_OTHER_OPTION] = &_error_OB_ERR_MODIFY_COL_VISIBILITY_COMBINED_WITH_OTHER_OPTION;
    _errors[-OB_ERR_MODIFY_COL_VISIBILITY_BY_SYS_USER] = &_error_OB_ERR_MODIFY_COL_VISIBILITY_BY_SYS_USER;
    _errors[-OB_ERR_TOO_MANY_ARGS_FOR_FUN] = &_error_OB_ERR_TOO_MANY_ARGS_FOR_FUN;
    _errors[-OB_PX_SQL_NEED_RETRY] = &_error_OB_PX_SQL_NEED_RETRY;
    _errors[-OB_TENANT_HAS_BEEN_DROPPED] = &_error_OB_TENANT_HAS_BEEN_DROPPED;
    _errors[-OB_ERR_EXTRACT_FIELD_INVALID] = &_error_OB_ERR_EXTRACT_FIELD_INVALID;
    _errors[-OB_ERR_PACKAGE_COMPILE_ERROR] = &_error_OB_ERR_PACKAGE_COMPILE_ERROR;
    _errors[-OB_ERR_SP_EMPTY_BLOCK] = &_error_OB_ERR_SP_EMPTY_BLOCK;
    _errors[-OB_ARRAY_BINDING_ROLLBACK] = &_error_OB_ARRAY_BINDING_ROLLBACK;
    _errors[-OB_ERR_INVALID_SUBQUERY_USE] = &_error_OB_ERR_INVALID_SUBQUERY_USE;
    _errors[-OB_ERR_DATE_OR_SYS_VAR_CANNOT_IN_CHECK_CST] = &_error_OB_ERR_DATE_OR_SYS_VAR_CANNOT_IN_CHECK_CST;
    _errors[-OB_ERR_NONEXISTENT_CONSTRAINT] = &_error_OB_ERR_NONEXISTENT_CONSTRAINT;
    _errors[-OB_ERR_CHECK_CONSTRAINT_VIOLATED] = &_error_OB_ERR_CHECK_CONSTRAINT_VIOLATED;
    _errors[-OB_ERR_GROUP_FUNC_NOT_ALLOWED] = &_error_OB_ERR_GROUP_FUNC_NOT_ALLOWED;
    _errors[-OB_ERR_POLICY_STRING_NOT_FOUND] = &_error_OB_ERR_POLICY_STRING_NOT_FOUND;
    _errors[-OB_ERR_INVALID_LABEL_STRING] = &_error_OB_ERR_INVALID_LABEL_STRING;
    _errors[-OB_ERR_UNDEFINED_COMPARTMENT_STRING_FOR_POLICY_STRING] = &_error_OB_ERR_UNDEFINED_COMPARTMENT_STRING_FOR_POLICY_STRING;
    _errors[-OB_ERR_UNDEFINED_LEVEL_STRING_FOR_POLICY_STRING] = &_error_OB_ERR_UNDEFINED_LEVEL_STRING_FOR_POLICY_STRING;
    _errors[-OB_ERR_UNDEFINED_GROUP_STRING_FOR_POLICY_STRING] = &_error_OB_ERR_UNDEFINED_GROUP_STRING_FOR_POLICY_STRING;
    _errors[-OB_ERR_LBAC_ERROR] = &_error_OB_ERR_LBAC_ERROR;
    _errors[-OB_ERR_POLICY_ROLE_ALREADY_EXISTS_FOR_POLICY_STRING] = &_error_OB_ERR_POLICY_ROLE_ALREADY_EXISTS_FOR_POLICY_STRING;
    _errors[-OB_ERR_NULL_OR_INVALID_USER_LABEL] = &_error_OB_ERR_NULL_OR_INVALID_USER_LABEL;
    _errors[-OB_ERR_ADD_INDEX] = &_error_OB_ERR_ADD_INDEX;
    _errors[-OB_ERR_PROFILE_STRING_DOES_NOT_EXIST] = &_error_OB_ERR_PROFILE_STRING_DOES_NOT_EXIST;
    _errors[-OB_ERR_INVALID_RESOURCE_LIMIT] = &_error_OB_ERR_INVALID_RESOURCE_LIMIT;
    _errors[-OB_ERR_PROFILE_STRING_ALREADY_EXISTS] = &_error_OB_ERR_PROFILE_STRING_ALREADY_EXISTS;
    _errors[-OB_ERR_PROFILE_STRING_HAS_USERS_ASSIGNED] = &_error_OB_ERR_PROFILE_STRING_HAS_USERS_ASSIGNED;
    _errors[-OB_ERR_THE_LEADING_PRECISION_OF_THE_INTERVAL_IS_TOO_SMALL] = &_error_OB_ERR_THE_LEADING_PRECISION_OF_THE_INTERVAL_IS_TOO_SMALL;
    _errors[-OB_ERR_INVALID_TIME_ZONE_HOUR] = &_error_OB_ERR_INVALID_TIME_ZONE_HOUR;
    _errors[-OB_ERR_INVALID_TIME_ZONE_MINUTE] = &_error_OB_ERR_INVALID_TIME_ZONE_MINUTE;
    _errors[-OB_ERR_NOT_A_VALID_TIME_ZONE] = &_error_OB_ERR_NOT_A_VALID_TIME_ZONE;
    _errors[-OB_ERR_DATE_FORMAT_IS_TOO_LONG_FOR_INTERNAL_BUFFER] = &_error_OB_ERR_DATE_FORMAT_IS_TOO_LONG_FOR_INTERNAL_BUFFER;
    _errors[-OB_ERR_ADD_CHECK_CONSTRAINT_VIOLATED] = &_error_OB_ERR_ADD_CHECK_CONSTRAINT_VIOLATED;
    _errors[-OB_ERR_ILLEGAL_VIEW_UPDATE] = &_error_OB_ERR_ILLEGAL_VIEW_UPDATE;
    _errors[-OB_ERR_VIRTUAL_COL_NOT_ALLOWED] = &_error_OB_ERR_VIRTUAL_COL_NOT_ALLOWED;
    _errors[-OB_ERR_O_VIEW_MULTIUPDATE] = &_error_OB_ERR_O_VIEW_MULTIUPDATE;
    _errors[-OB_ERR_NON_INSERTABLE_TABLE] = &_error_OB_ERR_NON_INSERTABLE_TABLE;
    _errors[-OB_ERR_VIEW_MULTIUPDATE] = &_error_OB_ERR_VIEW_MULTIUPDATE;
    _errors[-OB_ERR_NONUPDATEABLE_COLUMN] = &_error_OB_ERR_NONUPDATEABLE_COLUMN;
    _errors[-OB_ERR_VIEW_DELETE_MERGE_VIEW] = &_error_OB_ERR_VIEW_DELETE_MERGE_VIEW;
    _errors[-OB_ERR_O_DELETE_VIEW_NON_KEY_PRESERVED] = &_error_OB_ERR_O_DELETE_VIEW_NON_KEY_PRESERVED;
    _errors[-OB_ERR_O_UPDATE_VIEW_NON_KEY_PRESERVED] = &_error_OB_ERR_O_UPDATE_VIEW_NON_KEY_PRESERVED;
    _errors[-OB_ERR_MODIFY_READ_ONLY_VIEW] = &_error_OB_ERR_MODIFY_READ_ONLY_VIEW;
    _errors[-OB_ERR_INVALID_INITRANS_VALUE] = &_error_OB_ERR_INVALID_INITRANS_VALUE;
    _errors[-OB_ERR_INVALID_MAXTRANS_VALUE] = &_error_OB_ERR_INVALID_MAXTRANS_VALUE;
    _errors[-OB_ERR_INVALID_PCTFREE_OR_PCTUSED_VALUE] = &_error_OB_ERR_INVALID_PCTFREE_OR_PCTUSED_VALUE;
    _errors[-OB_ERR_PROXY_REROUTE] = &_error_OB_ERR_PROXY_REROUTE;
    _errors[-OB_ERR_ILLEGAL_ARGUMENT_FOR_FUNCTION] = &_error_OB_ERR_ILLEGAL_ARGUMENT_FOR_FUNCTION;
    _errors[-OB_ERR_OPERATOR_CANNOT_BE_USED_WITH_LIST] = &_error_OB_ERR_OPERATOR_CANNOT_BE_USED_WITH_LIST;
    _errors[-OB_ERR_INVALID_SAMPLING_RANGE] = &_error_OB_ERR_INVALID_SAMPLING_RANGE;
    _errors[-OB_ERR_SPECIFY_DATABASE_NOT_ALLOWED] = &_error_OB_ERR_SPECIFY_DATABASE_NOT_ALLOWED;
    _errors[-OB_ERR_STMT_TRIGGER_WITH_WHEN_CLAUSE] = &_error_OB_ERR_STMT_TRIGGER_WITH_WHEN_CLAUSE;
    _errors[-OB_ERR_TRIGGER_NOT_EXIST] = &_error_OB_ERR_TRIGGER_NOT_EXIST;
    _errors[-OB_ERR_TRIGGER_ALREADY_EXIST] = &_error_OB_ERR_TRIGGER_ALREADY_EXIST;
    _errors[-OB_ERR_TRIGGER_EXIST_ON_OTHER_TABLE] = &_error_OB_ERR_TRIGGER_EXIST_ON_OTHER_TABLE;
    _errors[-OB_ERR_SIGNALED_IN_PARALLEL_QUERY_SERVER] = &_error_OB_ERR_SIGNALED_IN_PARALLEL_QUERY_SERVER;
    _errors[-OB_ERR_CTE_ILLEGAL_QUERY_NAME] = &_error_OB_ERR_CTE_ILLEGAL_QUERY_NAME;
    _errors[-OB_ERR_CTE_UNSUPPORTED_COLUMN_ALIASING] = &_error_OB_ERR_CTE_UNSUPPORTED_COLUMN_ALIASING;
    _errors[-OB_ERR_UNSUPPORTED_USE_OF_CTE] = &_error_OB_ERR_UNSUPPORTED_USE_OF_CTE;
    _errors[-OB_ERR_CTE_COLUMN_NUMBER_NOT_MATCH] = &_error_OB_ERR_CTE_COLUMN_NUMBER_NOT_MATCH;
    _errors[-OB_ERR_NEED_COLUMN_ALIAS_LIST_IN_RECURSIVE_CTE] = &_error_OB_ERR_NEED_COLUMN_ALIAS_LIST_IN_RECURSIVE_CTE;
    _errors[-OB_ERR_NEED_UNION_ALL_IN_RECURSIVE_CTE] = &_error_OB_ERR_NEED_UNION_ALL_IN_RECURSIVE_CTE;
    _errors[-OB_ERR_NEED_ONLY_TWO_BRANCH_IN_RECURSIVE_CTE] = &_error_OB_ERR_NEED_ONLY_TWO_BRANCH_IN_RECURSIVE_CTE;
    _errors[-OB_ERR_NEED_REFERENCE_ITSELF_DIRECTLY_IN_RECURSIVE_CTE] = &_error_OB_ERR_NEED_REFERENCE_ITSELF_DIRECTLY_IN_RECURSIVE_CTE;
    _errors[-OB_ERR_NEED_INIT_BRANCH_IN_RECURSIVE_CTE] = &_error_OB_ERR_NEED_INIT_BRANCH_IN_RECURSIVE_CTE;
    _errors[-OB_ERR_CYCLE_FOUND_IN_RECURSIVE_CTE] = &_error_OB_ERR_CYCLE_FOUND_IN_RECURSIVE_CTE;
    _errors[-OB_ERR_CTE_REACH_MAX_LEVEL_RECURSION] = &_error_OB_ERR_CTE_REACH_MAX_LEVEL_RECURSION;
    _errors[-OB_ERR_CTE_ILLEGAL_SEARCH_PSEUDO_NAME] = &_error_OB_ERR_CTE_ILLEGAL_SEARCH_PSEUDO_NAME;
    _errors[-OB_ERR_CTE_ILLEGAL_CYCLE_NON_CYCLE_VALUE] = &_error_OB_ERR_CTE_ILLEGAL_CYCLE_NON_CYCLE_VALUE;
    _errors[-OB_ERR_CTE_ILLEGAL_CYCLE_PSEUDO_NAME] = &_error_OB_ERR_CTE_ILLEGAL_CYCLE_PSEUDO_NAME;
    _errors[-OB_ERR_CTE_COLUMN_ALIAS_DUPLICATE] = &_error_OB_ERR_CTE_COLUMN_ALIAS_DUPLICATE;
    _errors[-OB_ERR_CTE_ILLEGAL_SEARCH_CYCLE_CLAUSE] = &_error_OB_ERR_CTE_ILLEGAL_SEARCH_CYCLE_CLAUSE;
    _errors[-OB_ERR_CTE_DUPLICATE_CYCLE_NON_CYCLE_VALUE] = &_error_OB_ERR_CTE_DUPLICATE_CYCLE_NON_CYCLE_VALUE;
    _errors[-OB_ERR_CTE_DUPLICATE_SEQ_NAME_CYCLE_COLUMN] = &_error_OB_ERR_CTE_DUPLICATE_SEQ_NAME_CYCLE_COLUMN;
    _errors[-OB_ERR_CTE_DUPLICATE_NAME_IN_SEARCH_CLAUSE] = &_error_OB_ERR_CTE_DUPLICATE_NAME_IN_SEARCH_CLAUSE;
    _errors[-OB_ERR_CTE_DUPLICATE_NAME_IN_CYCLE_CLAUSE] = &_error_OB_ERR_CTE_DUPLICATE_NAME_IN_CYCLE_CLAUSE;
    _errors[-OB_ERR_CTE_ILLEGAL_COLUMN_IN_CYCLE_CLAUSE] = &_error_OB_ERR_CTE_ILLEGAL_COLUMN_IN_CYCLE_CLAUSE;
    _errors[-OB_ERR_CTE_ILLEGAL_RECURSIVE_BRANCH] = &_error_OB_ERR_CTE_ILLEGAL_RECURSIVE_BRANCH;
    _errors[-OB_ERR_ILLEGAL_JOIN_IN_RECURSIVE_CTE] = &_error_OB_ERR_ILLEGAL_JOIN_IN_RECURSIVE_CTE;
    _errors[-OB_ERR_CTE_NEED_COLUMN_ALIAS_LIST] = &_error_OB_ERR_CTE_NEED_COLUMN_ALIAS_LIST;
    _errors[-OB_ERR_CTE_ILLEGAL_COLUMN_IN_SERACH_CALUSE] = &_error_OB_ERR_CTE_ILLEGAL_COLUMN_IN_SERACH_CALUSE;
    _errors[-OB_ERR_CTE_RECURSIVE_QUERY_NAME_REFERENCED_MORE_THAN_ONCE] = &_error_OB_ERR_CTE_RECURSIVE_QUERY_NAME_REFERENCED_MORE_THAN_ONCE;
    _errors[-OB_ERR_CBY_PSEUDO_COLUMN_NOT_ALLOWED] = &_error_OB_ERR_CBY_PSEUDO_COLUMN_NOT_ALLOWED;
    _errors[-OB_ERR_CBY_LOOP] = &_error_OB_ERR_CBY_LOOP;
    _errors[-OB_ERR_CBY_JOIN_NOT_ALLOWED] = &_error_OB_ERR_CBY_JOIN_NOT_ALLOWED;
    _errors[-OB_ERR_CBY_CONNECT_BY_REQUIRED] = &_error_OB_ERR_CBY_CONNECT_BY_REQUIRED;
    _errors[-OB_ERR_CBY_CONNECT_BY_PATH_NOT_ALLOWED] = &_error_OB_ERR_CBY_CONNECT_BY_PATH_NOT_ALLOWED;
    _errors[-OB_ERR_CBY_CONNECT_BY_PATH_ILLEGAL_PARAM] = &_error_OB_ERR_CBY_CONNECT_BY_PATH_ILLEGAL_PARAM;
    _errors[-OB_ERR_CBY_CONNECT_BY_PATH_INVALID_SEPARATOR] = &_error_OB_ERR_CBY_CONNECT_BY_PATH_INVALID_SEPARATOR;
    _errors[-OB_ERR_CBY_CONNECT_BY_ROOT_ILLEGAL_USED] = &_error_OB_ERR_CBY_CONNECT_BY_ROOT_ILLEGAL_USED;
    _errors[-OB_ERR_CBY_OREDER_SIBLINGS_BY_NOT_ALLOWED] = &_error_OB_ERR_CBY_OREDER_SIBLINGS_BY_NOT_ALLOWED;
    _errors[-OB_ERR_CBY_NOCYCLE_REQUIRED] = &_error_OB_ERR_CBY_NOCYCLE_REQUIRED;
    _errors[-OB_ERR_NOT_ENOUGH_ARGS_FOR_FUN] = &_error_OB_ERR_NOT_ENOUGH_ARGS_FOR_FUN;
    _errors[-OB_ERR_PREPARE_STMT_CHECKSUM] = &_error_OB_ERR_PREPARE_STMT_CHECKSUM;
    _errors[-OB_ERR_ENABLE_NONEXISTENT_CONSTRAINT] = &_error_OB_ERR_ENABLE_NONEXISTENT_CONSTRAINT;
    _errors[-OB_ERR_DISABLE_NONEXISTENT_CONSTRAINT] = &_error_OB_ERR_DISABLE_NONEXISTENT_CONSTRAINT;
    _errors[-OB_ERR_DOWNGRADE_DOP] = &_error_OB_ERR_DOWNGRADE_DOP;
    _errors[-OB_ERR_DOWNGRADE_PARALLEL_MAX_SERVERS] = &_error_OB_ERR_DOWNGRADE_PARALLEL_MAX_SERVERS;
    _errors[-OB_ERR_ORPHANED_CHILD_RECORD_EXISTS] = &_error_OB_ERR_ORPHANED_CHILD_RECORD_EXISTS;
    _errors[-OB_ERR_COL_CHECK_CST_REFER_ANOTHER_COL] = &_error_OB_ERR_COL_CHECK_CST_REFER_ANOTHER_COL;
    _errors[-OB_BATCHED_MULTI_STMT_ROLLBACK] = &_error_OB_BATCHED_MULTI_STMT_ROLLBACK;
    _errors[-OB_ERR_FOR_UPDATE_SELECT_VIEW_CANNOT] = &_error_OB_ERR_FOR_UPDATE_SELECT_VIEW_CANNOT;
    _errors[-OB_ERR_POLICY_WITH_CHECK_OPTION_VIOLATION] = &_error_OB_ERR_POLICY_WITH_CHECK_OPTION_VIOLATION;
    _errors[-OB_ERR_POLICY_ALREADY_APPLIED_TO_TABLE] = &_error_OB_ERR_POLICY_ALREADY_APPLIED_TO_TABLE;
    _errors[-OB_ERR_MUTATING_TABLE_OPERATION] = &_error_OB_ERR_MUTATING_TABLE_OPERATION;
    _errors[-OB_ERR_MODIFY_OR_DROP_MULTI_COLUMN_CONSTRAINT] = &_error_OB_ERR_MODIFY_OR_DROP_MULTI_COLUMN_CONSTRAINT;
    _errors[-OB_ERR_DROP_PARENT_KEY_COLUMN] = &_error_OB_ERR_DROP_PARENT_KEY_COLUMN;
    _errors[-OB_AUTOINC_SERVICE_BUSY] = &_error_OB_AUTOINC_SERVICE_BUSY;
    _errors[-OB_ERR_CONSTRAINT_CONSTRAINT_DISABLE_VALIDATE] = &_error_OB_ERR_CONSTRAINT_CONSTRAINT_DISABLE_VALIDATE;
    _errors[-OB_ERR_AUTONOMOUS_TRANSACTION_ROLLBACK] = &_error_OB_ERR_AUTONOMOUS_TRANSACTION_ROLLBACK;
    _errors[-OB_ORDERBY_CLAUSE_NOT_ALLOWED] = &_error_OB_ORDERBY_CLAUSE_NOT_ALLOWED;
    _errors[-OB_DISTINCT_NOT_ALLOWED] = &_error_OB_DISTINCT_NOT_ALLOWED;
    _errors[-OB_ERR_ASSIGN_USER_VARIABLE_NOT_ALLOWED] = &_error_OB_ERR_ASSIGN_USER_VARIABLE_NOT_ALLOWED;
    _errors[-OB_ERR_MODIFY_NONEXISTENT_CONSTRAINT] = &_error_OB_ERR_MODIFY_NONEXISTENT_CONSTRAINT;
    _errors[-OB_ERR_SP_EXCEPTION_HANDLE_ILLEGAL] = &_error_OB_ERR_SP_EXCEPTION_HANDLE_ILLEGAL;
    _errors[-OB_INVALID_ROWID] = &_error_OB_INVALID_ROWID;
    _errors[-OB_ERR_INVALID_INSERT_COLUMN] = &_error_OB_ERR_INVALID_INSERT_COLUMN;
    _errors[-OB_INCORRECT_USE_OF_OPERATOR] = &_error_OB_INCORRECT_USE_OF_OPERATOR;
    _errors[-OB_ERR_NON_CONST_EXPR_IS_NOT_ALLOWED_FOR_PIVOT_UNPIVOT_VALUES] = &_error_OB_ERR_NON_CONST_EXPR_IS_NOT_ALLOWED_FOR_PIVOT_UNPIVOT_VALUES;
    _errors[-OB_ERR_EXPECT_AGGREGATE_FUNCTION_INSIDE_PIVOT_OPERATION] = &_error_OB_ERR_EXPECT_AGGREGATE_FUNCTION_INSIDE_PIVOT_OPERATION;
    _errors[-OB_ERR_EXP_NEED_SAME_DATATYPE] = &_error_OB_ERR_EXP_NEED_SAME_DATATYPE;
    _errors[-OB_ERR_CHARACTER_SET_MISMATCH] = &_error_OB_ERR_CHARACTER_SET_MISMATCH;
    _errors[-OB_ERR_REGEXP_NOMATCH] = &_error_OB_ERR_REGEXP_NOMATCH;
    _errors[-OB_ERR_REGEXP_BADPAT] = &_error_OB_ERR_REGEXP_BADPAT;
    _errors[-OB_ERR_REGEXP_EESCAPE] = &_error_OB_ERR_REGEXP_EESCAPE;
    _errors[-OB_ERR_REGEXP_EBRACK] = &_error_OB_ERR_REGEXP_EBRACK;
    _errors[-OB_ERR_REGEXP_EPAREN] = &_error_OB_ERR_REGEXP_EPAREN;
    _errors[-OB_ERR_REGEXP_ESUBREG] = &_error_OB_ERR_REGEXP_ESUBREG;
    _errors[-OB_ERR_REGEXP_ERANGE] = &_error_OB_ERR_REGEXP_ERANGE;
    _errors[-OB_ERR_REGEXP_ECTYPE] = &_error_OB_ERR_REGEXP_ECTYPE;
    _errors[-OB_ERR_REGEXP_ECOLLATE] = &_error_OB_ERR_REGEXP_ECOLLATE;
    _errors[-OB_ERR_REGEXP_EBRACE] = &_error_OB_ERR_REGEXP_EBRACE;
    _errors[-OB_ERR_REGEXP_BADBR] = &_error_OB_ERR_REGEXP_BADBR;
    _errors[-OB_ERR_REGEXP_BADRPT] = &_error_OB_ERR_REGEXP_BADRPT;
    _errors[-OB_ERR_REGEXP_ASSERT] = &_error_OB_ERR_REGEXP_ASSERT;
    _errors[-OB_ERR_REGEXP_INVARG] = &_error_OB_ERR_REGEXP_INVARG;
    _errors[-OB_ERR_REGEXP_MIXED] = &_error_OB_ERR_REGEXP_MIXED;
    _errors[-OB_ERR_REGEXP_BADOPT] = &_error_OB_ERR_REGEXP_BADOPT;
    _errors[-OB_ERR_REGEXP_ETOOBIG] = &_error_OB_ERR_REGEXP_ETOOBIG;
    _errors[-OB_NOT_SUPPORTED_ROWID_TYPE] = &_error_OB_NOT_SUPPORTED_ROWID_TYPE;
    _errors[-OB_ERR_PARALLEL_DDL_CONFLICT] = &_error_OB_ERR_PARALLEL_DDL_CONFLICT;
    _errors[-OB_ERR_SUBSCRIPT_BEYOND_COUNT] = &_error_OB_ERR_SUBSCRIPT_BEYOND_COUNT;
    _errors[-OB_ERR_NOT_PARTITIONED] = &_error_OB_ERR_NOT_PARTITIONED;
    _errors[-OB_UNKNOWN_SUBPARTITION] = &_error_OB_UNKNOWN_SUBPARTITION;
    _errors[-OB_ERR_INVALID_SQL_ROW_LIMITING] = &_error_OB_ERR_INVALID_SQL_ROW_LIMITING;
    _errors[-INCORRECT_ARGUMENTS_TO_ESCAPE] = &_error_INCORRECT_ARGUMENTS_TO_ESCAPE;
    _errors[-STATIC_ENG_NOT_IMPLEMENT] = &_error_STATIC_ENG_NOT_IMPLEMENT;
    _errors[-OB_OBJ_ALREADY_EXIST] = &_error_OB_OBJ_ALREADY_EXIST;
    _errors[-OB_DBLINK_NOT_EXIST_TO_ACCESS] = &_error_OB_DBLINK_NOT_EXIST_TO_ACCESS;
    _errors[-OB_DBLINK_NOT_EXIST_TO_DROP] = &_error_OB_DBLINK_NOT_EXIST_TO_DROP;
    _errors[-OB_ERR_ACCESS_INTO_NULL] = &_error_OB_ERR_ACCESS_INTO_NULL;
    _errors[-OB_ERR_COLLECION_NULL] = &_error_OB_ERR_COLLECION_NULL;
    _errors[-OB_ERR_NO_DATA_NEEDED] = &_error_OB_ERR_NO_DATA_NEEDED;
    _errors[-OB_ERR_PROGRAM_ERROR] = &_error_OB_ERR_PROGRAM_ERROR;
    _errors[-OB_ERR_ROWTYPE_MISMATCH] = &_error_OB_ERR_ROWTYPE_MISMATCH;
    _errors[-OB_ERR_STORAGE_ERROR] = &_error_OB_ERR_STORAGE_ERROR;
    _errors[-OB_ERR_SUBSCRIPT_OUTSIDE_LIMIT] = &_error_OB_ERR_SUBSCRIPT_OUTSIDE_LIMIT;
    _errors[-OB_ERR_INVALID_CURSOR] = &_error_OB_ERR_INVALID_CURSOR;
    _errors[-OB_ERR_LOGIN_DENIED] = &_error_OB_ERR_LOGIN_DENIED;
    _errors[-OB_ERR_NOT_LOGGED_ON] = &_error_OB_ERR_NOT_LOGGED_ON;
    _errors[-OB_ERR_SELF_IS_NULL] = &_error_OB_ERR_SELF_IS_NULL;
    _errors[-OB_ERR_TIMEOUT_ON_RESOURCE] = &_error_OB_ERR_TIMEOUT_ON_RESOURCE;
    _errors[-OB_COLUMN_CANT_CHANGE_TO_NOT_NULL] = &_error_OB_COLUMN_CANT_CHANGE_TO_NOT_NULL;
    _errors[-OB_COLUMN_CANT_CHANGE_TO_NULLALE] = &_error_OB_COLUMN_CANT_CHANGE_TO_NULLALE;
    _errors[-OB_ENABLE_NOT_NULL_CONSTRAINT_VIOLATED] = &_error_OB_ENABLE_NOT_NULL_CONSTRAINT_VIOLATED;
    _errors[-OB_ERR_ARGUMENT_SHOULD_CONSTANT] = &_error_OB_ERR_ARGUMENT_SHOULD_CONSTANT;
    _errors[-OB_ERR_NOT_A_SINGLE_GROUP_FUNCTION] = &_error_OB_ERR_NOT_A_SINGLE_GROUP_FUNCTION;
    _errors[-OB_ERR_ZERO_LENGTH_IDENTIFIER] = &_error_OB_ERR_ZERO_LENGTH_IDENTIFIER;
    _errors[-OB_ERR_PARAM_VALUE_INVALID] = &_error_OB_ERR_PARAM_VALUE_INVALID;
    _errors[-OB_ERR_DBMS_SQL_CURSOR_NOT_EXIST] = &_error_OB_ERR_DBMS_SQL_CURSOR_NOT_EXIST;
    _errors[-OB_ERR_DBMS_SQL_NOT_ALL_VAR_BIND] = &_error_OB_ERR_DBMS_SQL_NOT_ALL_VAR_BIND;
    _errors[-OB_ERR_CONFLICTING_DECLARATIONS] = &_error_OB_ERR_CONFLICTING_DECLARATIONS;
    _errors[-OB_ERR_DROP_COL_REFERENCED_MULTI_COLS_CONSTRAINT] = &_error_OB_ERR_DROP_COL_REFERENCED_MULTI_COLS_CONSTRAINT;
    _errors[-OB_ERR_MODIFY_COL_DATATYEP_REFERENCED_CONSTRAINT] = &_error_OB_ERR_MODIFY_COL_DATATYEP_REFERENCED_CONSTRAINT;
    _errors[-OB_ERR_PERCENTILE_VALUE_INVALID] = &_error_OB_ERR_PERCENTILE_VALUE_INVALID;
    _errors[-OB_ERR_ARGUMENT_SHOULD_NUMERIC_DATE_DATETIME_TYPE] = &_error_OB_ERR_ARGUMENT_SHOULD_NUMERIC_DATE_DATETIME_TYPE;
    _errors[-OB_ERR_ALTER_TABLE_RENAME_WITH_OPTION] = &_error_OB_ERR_ALTER_TABLE_RENAME_WITH_OPTION;
    _errors[-OB_ERR_ONLY_SIMPLE_COLUMN_NAME_ALLOWED] = &_error_OB_ERR_ONLY_SIMPLE_COLUMN_NAME_ALLOWED;
    _errors[-OB_ERR_SAFE_UPDATE_MODE_NEED_WHERE_OR_LIMIT] = &_error_OB_ERR_SAFE_UPDATE_MODE_NEED_WHERE_OR_LIMIT;
    _errors[-OB_ERR_SPECIFIY_PARTITION_DESCRIPTION] = &_error_OB_ERR_SPECIFIY_PARTITION_DESCRIPTION;
    _errors[-OB_ERR_SAME_NAME_SUBPARTITION] = &_error_OB_ERR_SAME_NAME_SUBPARTITION;
    _errors[-OB_ERR_UPDATE_ORDER_BY] = &_error_OB_ERR_UPDATE_ORDER_BY;
    _errors[-OB_ERR_UPDATE_LIMIT] = &_error_OB_ERR_UPDATE_LIMIT;
    _errors[-OB_ROWID_TYPE_MISMATCH] = &_error_OB_ROWID_TYPE_MISMATCH;
    _errors[-OB_ROWID_NUM_MISMATCH] = &_error_OB_ROWID_NUM_MISMATCH;
    _errors[-OB_NO_COLUMN_ALIAS] = &_error_OB_NO_COLUMN_ALIAS;
    _errors[-OB_ERR_NUMERIC_NOT_MATCH_FORMAT_LENGTH] = &_error_OB_ERR_NUMERIC_NOT_MATCH_FORMAT_LENGTH;
    _errors[-OB_ERR_INVALID_DATATYPE] = &_error_OB_ERR_INVALID_DATATYPE;
    _errors[-OB_ERR_NOT_COMPOSITE_PARTITION] = &_error_OB_ERR_NOT_COMPOSITE_PARTITION;
    _errors[-OB_ERR_SUBPARTITION_NOT_EXPECT_VALUES_IN] = &_error_OB_ERR_SUBPARTITION_NOT_EXPECT_VALUES_IN;
    _errors[-OB_ERR_SUBPARTITION_EXPECT_VALUES_IN] = &_error_OB_ERR_SUBPARTITION_EXPECT_VALUES_IN;
    _errors[-OB_ERR_PARTITION_NOT_EXPECT_VALUES_LESS_THAN] = &_error_OB_ERR_PARTITION_NOT_EXPECT_VALUES_LESS_THAN;
    _errors[-OB_ERR_PARTITION_EXPECT_VALUES_LESS_THAN] = &_error_OB_ERR_PARTITION_EXPECT_VALUES_LESS_THAN;
    _errors[-OB_ERR_PROGRAM_UNIT_NOT_EXIST] = &_error_OB_ERR_PROGRAM_UNIT_NOT_EXIST;
    _errors[-OB_ERR_INVALID_RESTORE_POINT_NAME] = &_error_OB_ERR_INVALID_RESTORE_POINT_NAME;
    _errors[-OB_ERR_INPUT_TIME_TYPE] = &_error_OB_ERR_INPUT_TIME_TYPE;
    _errors[-OB_ERR_IN_ARRAY_DML] = &_error_OB_ERR_IN_ARRAY_DML;
    _errors[-OB_ERR_TRIGGER_COMPILE_ERROR] = &_error_OB_ERR_TRIGGER_COMPILE_ERROR;
    _errors[-OB_ERR_IN_TRIM_SET] = &_error_OB_ERR_IN_TRIM_SET;
    _errors[-OB_ERR_MISSING_OR_INVALID_PASSWORD_FOR_ROLE] = &_error_OB_ERR_MISSING_OR_INVALID_PASSWORD_FOR_ROLE;
    _errors[-OB_ERR_MISSING_OR_INVALID_PASSWORD] = &_error_OB_ERR_MISSING_OR_INVALID_PASSWORD;
    _errors[-OB_ERR_NO_OPTIONS_FOR_ALTER_USER] = &_error_OB_ERR_NO_OPTIONS_FOR_ALTER_USER;
    _errors[-OB_ERR_NO_MATCHING_UK_PK_FOR_COL_LIST] = &_error_OB_ERR_NO_MATCHING_UK_PK_FOR_COL_LIST;
    _errors[-OB_ERR_DUP_FK_IN_TABLE] = &_error_OB_ERR_DUP_FK_IN_TABLE;
    _errors[-OB_ERR_DUP_FK_EXISTS] = &_error_OB_ERR_DUP_FK_EXISTS;
    _errors[-OB_ERR_MISSING_OR_INVALID_PRIVIEGE] = &_error_OB_ERR_MISSING_OR_INVALID_PRIVIEGE;
    _errors[-OB_ERR_INVALID_VIRTUAL_COLUMN_TYPE] = &_error_OB_ERR_INVALID_VIRTUAL_COLUMN_TYPE;
    _errors[-OB_ERR_REFERENCED_TABLE_HAS_NO_PK] = &_error_OB_ERR_REFERENCED_TABLE_HAS_NO_PK;
    _errors[-OB_ERR_MODIFY_PART_COLUMN_TYPE] = &_error_OB_ERR_MODIFY_PART_COLUMN_TYPE;
    _errors[-OB_ERR_MODIFY_SUBPART_COLUMN_TYPE] = &_error_OB_ERR_MODIFY_SUBPART_COLUMN_TYPE;
    _errors[-OB_ERR_DECREASE_COLUMN_LENGTH] = &_error_OB_ERR_DECREASE_COLUMN_LENGTH;
    _errors[-OB_ERR_DATETIME_INTERVAL_INTERNAL_ERROR] = &_error_OB_ERR_DATETIME_INTERVAL_INTERNAL_ERROR;
    _errors[-OB_ERR_REMOTE_PART_ILLEGAL] = &_error_OB_ERR_REMOTE_PART_ILLEGAL;
    _errors[-OB_ERR_DUPLICATE_COLUMN_EXPRESSION_WAS_SPECIFIED] = &_error_OB_ERR_DUPLICATE_COLUMN_EXPRESSION_WAS_SPECIFIED;
    _errors[-OB_ERR_A_VIEW_NOT_APPROPRIATE_HERE] = &_error_OB_ERR_A_VIEW_NOT_APPROPRIATE_HERE;
    _errors[-OB_ROWID_VIEW_NO_KEY_PRESERVED] = &_error_OB_ROWID_VIEW_NO_KEY_PRESERVED;
    _errors[-OB_ROWID_VIEW_HAS_DISTINCT_ETC] = &_error_OB_ROWID_VIEW_HAS_DISTINCT_ETC;
    _errors[-OB_ERR_AT_LEAST_ONE_COLUMN_NOT_VIRTUAL] = &_error_OB_ERR_AT_LEAST_ONE_COLUMN_NOT_VIRTUAL;
    _errors[-OB_ERR_ONLY_PURE_FUNC_CANBE_INDEXED] = &_error_OB_ERR_ONLY_PURE_FUNC_CANBE_INDEXED;
    _errors[-OB_ERR_ONLY_PURE_FUNC_CANBE_VIRTUAL_COLUMN_EXPRESSION] = &_error_OB_ERR_ONLY_PURE_FUNC_CANBE_VIRTUAL_COLUMN_EXPRESSION;
    _errors[-OB_ERR_UPDATE_OPERATION_ON_VIRTUAL_COLUMNS] = &_error_OB_ERR_UPDATE_OPERATION_ON_VIRTUAL_COLUMNS;
    _errors[-OB_ERR_INVALID_COLUMN_EXPRESSION] = &_error_OB_ERR_INVALID_COLUMN_EXPRESSION;
    _errors[-OB_ERR_IDENTITY_COLUMN_COUNT_EXCE_LIMIT] = &_error_OB_ERR_IDENTITY_COLUMN_COUNT_EXCE_LIMIT;
    _errors[-OB_ERR_INVALID_NOT_NULL_CONSTRAINT_ON_IDENTITY_COLUMN] = &_error_OB_ERR_INVALID_NOT_NULL_CONSTRAINT_ON_IDENTITY_COLUMN;
    _errors[-OB_ERR_CANNOT_MODIFY_NOT_NULL_CONSTRAINT_ON_IDENTITY_COLUMN] = &_error_OB_ERR_CANNOT_MODIFY_NOT_NULL_CONSTRAINT_ON_IDENTITY_COLUMN;
    _errors[-OB_ERR_CANNOT_DROP_NOT_NULL_CONSTRAINT_ON_IDENTITY_COLUMN] = &_error_OB_ERR_CANNOT_DROP_NOT_NULL_CONSTRAINT_ON_IDENTITY_COLUMN;
    _errors[-OB_ERR_COLUMN_MODIFY_TO_IDENTITY_COLUMN] = &_error_OB_ERR_COLUMN_MODIFY_TO_IDENTITY_COLUMN;
    _errors[-OB_ERR_IDENTITY_COLUMN_CANNOT_HAVE_DEFAULT_VALUE] = &_error_OB_ERR_IDENTITY_COLUMN_CANNOT_HAVE_DEFAULT_VALUE;
    _errors[-OB_ERR_IDENTITY_COLUMN_MUST_BE_NUMERIC_TYPE] = &_error_OB_ERR_IDENTITY_COLUMN_MUST_BE_NUMERIC_TYPE;
    _errors[-OB_ERR_PREBUILT_TABLE_MANAGED_CANNOT_BE_IDENTITY_COLUMN] = &_error_OB_ERR_PREBUILT_TABLE_MANAGED_CANNOT_BE_IDENTITY_COLUMN;
    _errors[-OB_ERR_CANNOT_ALTER_SYSTEM_GENERATED_SEQUENCE] = &_error_OB_ERR_CANNOT_ALTER_SYSTEM_GENERATED_SEQUENCE;
    _errors[-OB_ERR_CANNOT_DROP_SYSTEM_GENERATED_SEQUENCE] = &_error_OB_ERR_CANNOT_DROP_SYSTEM_GENERATED_SEQUENCE;
    _errors[-OB_ERR_INSERT_INTO_GENERATED_ALWAYS_IDENTITY_COLUMN] = &_error_OB_ERR_INSERT_INTO_GENERATED_ALWAYS_IDENTITY_COLUMN;
    _errors[-OB_ERR_UPDATE_GENERATED_ALWAYS_IDENTITY_COLUMN] = &_error_OB_ERR_UPDATE_GENERATED_ALWAYS_IDENTITY_COLUMN;
    _errors[-OB_ERR_IDENTITY_COLUMN_SEQUENCE_MISMATCH_ALTER_TABLE_EXCHANGE_PARTITION] = &_error_OB_ERR_IDENTITY_COLUMN_SEQUENCE_MISMATCH_ALTER_TABLE_EXCHANGE_PARTITION;
    _errors[-OB_ERR_CANNOT_RENAME_SYSTEM_GENERATED_SEQUENCE] = &_error_OB_ERR_CANNOT_RENAME_SYSTEM_GENERATED_SEQUENCE;
    _errors[-OB_ERR_REVOKE_BY_COLUMN] = &_error_OB_ERR_REVOKE_BY_COLUMN;
    _errors[-OB_ERR_TYPE_BODY_NOT_EXIST] = &_error_OB_ERR_TYPE_BODY_NOT_EXIST;
    _errors[-OB_ERR_INVALID_ARGUMENT_FOR_WIDTH_BUCKET] = &_error_OB_ERR_INVALID_ARGUMENT_FOR_WIDTH_BUCKET;
    _errors[-OB_ERR_CBY_NO_MEMORY] = &_error_OB_ERR_CBY_NO_MEMORY;
    _errors[-OB_ERR_ILLEGAL_PARAM_FOR_CBY_PATH] = &_error_OB_ERR_ILLEGAL_PARAM_FOR_CBY_PATH;
    _errors[-OB_ERR_HOST_UNKNOWN] = &_error_OB_ERR_HOST_UNKNOWN;
    _errors[-OB_ERR_WINDOW_NAME_IS_NOT_DEFINE] = &_error_OB_ERR_WINDOW_NAME_IS_NOT_DEFINE;
    _errors[-OB_ERR_OPEN_CURSORS_EXCEEDED] = &_error_OB_ERR_OPEN_CURSORS_EXCEEDED;
    _errors[-OB_ERR_FETCH_OUT_SEQUENCE] = &_error_OB_ERR_FETCH_OUT_SEQUENCE;
    _errors[-OB_ERR_UNEXPECTED_NAME_STR] = &_error_OB_ERR_UNEXPECTED_NAME_STR;
    _errors[-OB_ERR_NO_PROGRAM_UNIT] = &_error_OB_ERR_NO_PROGRAM_UNIT;
    _errors[-OB_ERR_ARG_INVALID] = &_error_OB_ERR_ARG_INVALID;
    _errors[-OB_ERR_DBMS_STATS_PL] = &_error_OB_ERR_DBMS_STATS_PL;
    _errors[-OB_ERR_INCORRECT_VALUE_FOR_FUNCTION] = &_error_OB_ERR_INCORRECT_VALUE_FOR_FUNCTION;
    _errors[-OB_ERR_UNSUPPORTED_CHARACTER_SET] = &_error_OB_ERR_UNSUPPORTED_CHARACTER_SET;
    _errors[-OB_ERR_MUST_BE_FOLLOWED_BY_FOUR_HEXADECIMAL_CHARACTERS_OR_ANOTHER] = &_error_OB_ERR_MUST_BE_FOLLOWED_BY_FOUR_HEXADECIMAL_CHARACTERS_OR_ANOTHER;
    _errors[-OB_ERR_PARAMETER_TOO_LONG] = &_error_OB_ERR_PARAMETER_TOO_LONG;
    _errors[-OB_ERR_INVALID_PLSQL_CCFLAGS] = &_error_OB_ERR_INVALID_PLSQL_CCFLAGS;
    _errors[-OB_ERR_REF_MUTUALLY_DEP] = &_error_OB_ERR_REF_MUTUALLY_DEP;
    _errors[-OB_ERR_COLUMN_NOT_ALLOWED] = &_error_OB_ERR_COLUMN_NOT_ALLOWED;
    _errors[-OB_ERR_CANNOT_ACCESS_NLS_DATA_FILES_OR_INVALID_ENVIRONMENT_SPECIFIED] = &_error_OB_ERR_CANNOT_ACCESS_NLS_DATA_FILES_OR_INVALID_ENVIRONMENT_SPECIFIED;
    _errors[-OB_ERR_DUPLICATE_NULL_SPECIFICATION] = &_error_OB_ERR_DUPLICATE_NULL_SPECIFICATION;
    _errors[-OB_ERR_NOT_NULL_CONSTRAINT_VIOLATED] = &_error_OB_ERR_NOT_NULL_CONSTRAINT_VIOLATED;
    _errors[-OB_ERR_TABLE_ADD_NOT_NULL_COLUMN_NOT_EMPTY] = &_error_OB_ERR_TABLE_ADD_NOT_NULL_COLUMN_NOT_EMPTY;
    _errors[-OB_ERR_COLUMN_EXPRESSION_MODIFICATION_WITH_OTHER_DDL] = &_error_OB_ERR_COLUMN_EXPRESSION_MODIFICATION_WITH_OTHER_DDL;
    _errors[-OB_ERR_VIRTUAL_COL_WITH_CONSTRAINT_CANT_BE_CHANGED] = &_error_OB_ERR_VIRTUAL_COL_WITH_CONSTRAINT_CANT_BE_CHANGED;
    _errors[-OB_ERR_INVALID_NOT_NULL_CONSTRAINT_ON_DEFAULT_ON_NULL_IDENTITY_COLUMN] = &_error_OB_ERR_INVALID_NOT_NULL_CONSTRAINT_ON_DEFAULT_ON_NULL_IDENTITY_COLUMN;
    _errors[-OB_ERR_INVALID_DATA_TYPE_FOR_AT_TIME_ZONE] = &_error_OB_ERR_INVALID_DATA_TYPE_FOR_AT_TIME_ZONE;
    _errors[-OB_ERR_BAD_ARG] = &_error_OB_ERR_BAD_ARG;
    _errors[-OB_ERR_CANNOT_MODIFY_NOT_NULL_CONSTRAINT_ON_DEFAULT_ON_NULL_COLUMN] = &_error_OB_ERR_CANNOT_MODIFY_NOT_NULL_CONSTRAINT_ON_DEFAULT_ON_NULL_COLUMN;
    _errors[-OB_ERR_CANNOT_DROP_NOT_NULL_CONSTRAINT_ON_DEFAULT_ON_NULL_COLUMN] = &_error_OB_ERR_CANNOT_DROP_NOT_NULL_CONSTRAINT_ON_DEFAULT_ON_NULL_COLUMN;
    _errors[-OB_ERR_INVALID_PATH] = &_error_OB_ERR_INVALID_PATH;
    _errors[-OB_ERR_INVALID_PARAM_ENCOUNTERED] = &_error_OB_ERR_INVALID_PARAM_ENCOUNTERED;
    _errors[-OB_ERR_INCORRECT_METHOD_USAGE] = &_error_OB_ERR_INCORRECT_METHOD_USAGE;
    _errors[-OB_ERR_TYPE_MISMATCH] = &_error_OB_ERR_TYPE_MISMATCH;
    _errors[-OB_ERR_FETCH_COLUMN_NULL] = &_error_OB_ERR_FETCH_COLUMN_NULL;
    _errors[-OB_ERR_INVALID_SIZE_SPECIFIED] = &_error_OB_ERR_INVALID_SIZE_SPECIFIED;
    _errors[-OB_ERR_SOURCE_EMPTY] = &_error_OB_ERR_SOURCE_EMPTY;
    _errors[-OB_ERR_BAD_VALUE_FOR_OBJECT_TYPE] = &_error_OB_ERR_BAD_VALUE_FOR_OBJECT_TYPE;
    _errors[-OB_ERR_UNABLE_GET_SOURCE] = &_error_OB_ERR_UNABLE_GET_SOURCE;
    _errors[-OB_ERR_MISSING_IDENTIFIER] = &_error_OB_ERR_MISSING_IDENTIFIER;
    _errors[-OB_ERR_DUP_COMPILE_PARAM] = &_error_OB_ERR_DUP_COMPILE_PARAM;
    _errors[-OB_ERR_DATA_NOT_WELL_FORMAT] = &_error_OB_ERR_DATA_NOT_WELL_FORMAT;
    _errors[-OB_ERR_MUST_COMPOSIT_TYPE] = &_error_OB_ERR_MUST_COMPOSIT_TYPE;
    _errors[-OB_ERR_USER_EXCEED_RESOURCE] = &_error_OB_ERR_USER_EXCEED_RESOURCE;
    _errors[-OB_ERR_UTL_ENCODE_ARGUMENT_INVALID] = &_error_OB_ERR_UTL_ENCODE_ARGUMENT_INVALID;
    _errors[-OB_ERR_UTL_ENCODE_CHARSET_INVALID] = &_error_OB_ERR_UTL_ENCODE_CHARSET_INVALID;
    _errors[-OB_ERR_UTL_ENCODE_MIME_HEAD_TAG] = &_error_OB_ERR_UTL_ENCODE_MIME_HEAD_TAG;
    _errors[-OB_ERR_CHECK_OPTION_VIOLATED] = &_error_OB_ERR_CHECK_OPTION_VIOLATED;
    _errors[-OB_ERR_CHECK_OPTION_ON_NONUPDATABLE_VIEW] = &_error_OB_ERR_CHECK_OPTION_ON_NONUPDATABLE_VIEW;
    _errors[-OB_ERR_NO_DESC_FOR_POS] = &_error_OB_ERR_NO_DESC_FOR_POS;
    _errors[-OB_ERR_ILL_OBJ_FLAG] = &_error_OB_ERR_ILL_OBJ_FLAG;
    _errors[-OB_ERR_DBLINK_REMOTE_ECODE] = &_error_OB_ERR_DBLINK_REMOTE_ECODE;
    _errors[-OB_ERR_DBLINK_NO_LIB] = &_error_OB_ERR_DBLINK_NO_LIB;
    _errors[-OB_ERR_PARTITION_EXTENDED_ON_VIEW] = &_error_OB_ERR_PARTITION_EXTENDED_ON_VIEW;
    _errors[-OB_ERR_NOT_ALL_VARIABLE_BIND] = &_error_OB_ERR_NOT_ALL_VARIABLE_BIND;
    _errors[-OB_ERR_BIND_VARIABLE_NOT_EXIST] = &_error_OB_ERR_BIND_VARIABLE_NOT_EXIST;
    _errors[-OB_ERR_NOT_VALID_ROUTINE_NAME] = &_error_OB_ERR_NOT_VALID_ROUTINE_NAME;
    _errors[-OB_ERR_DDL_IN_ILLEGAL_CONTEXT] = &_error_OB_ERR_DDL_IN_ILLEGAL_CONTEXT;
    _errors[-OB_ERR_CTE_NEED_QUERY_BLOCKS] = &_error_OB_ERR_CTE_NEED_QUERY_BLOCKS;
    _errors[-OB_ERR_WINDOW_ROWS_INTERVAL_USE] = &_error_OB_ERR_WINDOW_ROWS_INTERVAL_USE;
    _errors[-OB_ERR_WINDOW_RANGE_FRAME_ORDER_TYPE] = &_error_OB_ERR_WINDOW_RANGE_FRAME_ORDER_TYPE;
    _errors[-OB_ERR_WINDOW_ILLEGAL_ORDER_BY] = &_error_OB_ERR_WINDOW_ILLEGAL_ORDER_BY;
    _errors[-OB_ERR_MULTIPLE_CONSTRAINTS_WITH_SAME_NAME] = &_error_OB_ERR_MULTIPLE_CONSTRAINTS_WITH_SAME_NAME;
    _errors[-OB_ERR_NON_BOOLEAN_EXPR_FOR_CHECK_CONSTRAINT] = &_error_OB_ERR_NON_BOOLEAN_EXPR_FOR_CHECK_CONSTRAINT;
    _errors[-OB_ERR_CHECK_CONSTRAINT_NOT_FOUND] = &_error_OB_ERR_CHECK_CONSTRAINT_NOT_FOUND;
    _errors[-OB_ERR_ALTER_CONSTRAINT_ENFORCEMENT_NOT_SUPPORTED] = &_error_OB_ERR_ALTER_CONSTRAINT_ENFORCEMENT_NOT_SUPPORTED;
    _errors[-OB_ERR_CHECK_CONSTRAINT_REFERS_AUTO_INCREMENT_COLUMN] = &_error_OB_ERR_CHECK_CONSTRAINT_REFERS_AUTO_INCREMENT_COLUMN;
    _errors[-OB_ERR_CHECK_CONSTRAINT_NAMED_FUNCTION_IS_NOT_ALLOWED] = &_error_OB_ERR_CHECK_CONSTRAINT_NAMED_FUNCTION_IS_NOT_ALLOWED;
    _errors[-OB_ERR_CHECK_CONSTRAINT_FUNCTION_IS_NOT_ALLOWED] = &_error_OB_ERR_CHECK_CONSTRAINT_FUNCTION_IS_NOT_ALLOWED;
    _errors[-OB_ERR_CHECK_CONSTRAINT_VARIABLES] = &_error_OB_ERR_CHECK_CONSTRAINT_VARIABLES;
    _errors[-OB_ERR_CHECK_CONSTRAINT_REFERS_UNKNOWN_COLUMN] = &_error_OB_ERR_CHECK_CONSTRAINT_REFERS_UNKNOWN_COLUMN;
    _errors[-OB_ERR_USE_UDF_IN_PART] = &_error_OB_ERR_USE_UDF_IN_PART;
    _errors[-OB_ERR_USE_UDF_NOT_DETERMIN] = &_error_OB_ERR_USE_UDF_NOT_DETERMIN;
    _errors[-OB_ERR_INTERVAL_CLAUSE_HAS_MORE_THAN_ONE_COLUMN] = &_error_OB_ERR_INTERVAL_CLAUSE_HAS_MORE_THAN_ONE_COLUMN;
    _errors[-OB_ERR_INVALID_DATA_TYPE_INTERVAL_TABLE] = &_error_OB_ERR_INVALID_DATA_TYPE_INTERVAL_TABLE;
    _errors[-OB_ERR_INTERVAL_EXPR_NOT_CORRECT_TYPE] = &_error_OB_ERR_INTERVAL_EXPR_NOT_CORRECT_TYPE;
    _errors[-OB_ERR_TABLE_IS_ALREADY_A_RANGE_PARTITIONED_TABLE] = &_error_OB_ERR_TABLE_IS_ALREADY_A_RANGE_PARTITIONED_TABLE;
    _errors[-OB_TRANSACTION_SET_VIOLATION] = &_error_OB_TRANSACTION_SET_VIOLATION;
    _errors[-OB_TRANS_ROLLBACKED] = &_error_OB_TRANS_ROLLBACKED;
    _errors[-OB_ERR_EXCLUSIVE_LOCK_CONFLICT] = &_error_OB_ERR_EXCLUSIVE_LOCK_CONFLICT;
    _errors[-OB_ERR_SHARED_LOCK_CONFLICT] = &_error_OB_ERR_SHARED_LOCK_CONFLICT;
    _errors[-OB_TRY_LOCK_ROW_CONFLICT] = &_error_OB_TRY_LOCK_ROW_CONFLICT;
    _errors[-OB_ERR_EXCLUSIVE_LOCK_CONFLICT_NOWAIT] = &_error_OB_ERR_EXCLUSIVE_LOCK_CONFLICT_NOWAIT;
    _errors[-OB_CLOCK_OUT_OF_ORDER] = &_error_OB_CLOCK_OUT_OF_ORDER;
    _errors[-OB_SWITCHING_TO_FOLLOWER_GRACEFULLY] = &_error_OB_SWITCHING_TO_FOLLOWER_GRACEFULLY;
    _errors[-OB_MASK_SET_NO_NODE] = &_error_OB_MASK_SET_NO_NODE;
    _errors[-OB_TRANS_HAS_DECIDED] = &_error_OB_TRANS_HAS_DECIDED;
    _errors[-OB_TRANS_INVALID_STATE] = &_error_OB_TRANS_INVALID_STATE;
    _errors[-OB_TRANS_STATE_NOT_CHANGE] = &_error_OB_TRANS_STATE_NOT_CHANGE;
    _errors[-OB_TRANS_PROTOCOL_ERROR] = &_error_OB_TRANS_PROTOCOL_ERROR;
    _errors[-OB_TRANS_INVALID_MESSAGE] = &_error_OB_TRANS_INVALID_MESSAGE;
    _errors[-OB_TRANS_INVALID_MESSAGE_TYPE] = &_error_OB_TRANS_INVALID_MESSAGE_TYPE;
    _errors[-OB_TRANS_TIMEOUT] = &_error_OB_TRANS_TIMEOUT;
    _errors[-OB_TRANS_KILLED] = &_error_OB_TRANS_KILLED;
    _errors[-OB_TRANS_STMT_TIMEOUT] = &_error_OB_TRANS_STMT_TIMEOUT;
    _errors[-OB_TRANS_CTX_NOT_EXIST] = &_error_OB_TRANS_CTX_NOT_EXIST;
    _errors[-OB_PARTITION_IS_FROZEN] = &_error_OB_PARTITION_IS_FROZEN;
    _errors[-OB_PARTITION_IS_NOT_FROZEN] = &_error_OB_PARTITION_IS_NOT_FROZEN;
    _errors[-OB_TRANS_INVALID_LOG_TYPE] = &_error_OB_TRANS_INVALID_LOG_TYPE;
    _errors[-OB_TRANS_SQL_SEQUENCE_ILLEGAL] = &_error_OB_TRANS_SQL_SEQUENCE_ILLEGAL;
    _errors[-OB_TRANS_CANNOT_BE_KILLED] = &_error_OB_TRANS_CANNOT_BE_KILLED;
    _errors[-OB_TRANS_STATE_UNKNOWN] = &_error_OB_TRANS_STATE_UNKNOWN;
    _errors[-OB_TRANS_IS_EXITING] = &_error_OB_TRANS_IS_EXITING;
    _errors[-OB_TRANS_NEED_ROLLBACK] = &_error_OB_TRANS_NEED_ROLLBACK;
    _errors[-OB_TRANS_UNKNOWN] = &_error_OB_TRANS_UNKNOWN;
    _errors[-OB_ERR_READ_ONLY_TRANSACTION] = &_error_OB_ERR_READ_ONLY_TRANSACTION;
    _errors[-OB_PARTITION_IS_NOT_STOPPED] = &_error_OB_PARTITION_IS_NOT_STOPPED;
    _errors[-OB_PARTITION_IS_STOPPED] = &_error_OB_PARTITION_IS_STOPPED;
    _errors[-OB_PARTITION_IS_BLOCKED] = &_error_OB_PARTITION_IS_BLOCKED;
    _errors[-OB_TRANS_RPC_TIMEOUT] = &_error_OB_TRANS_RPC_TIMEOUT;
    _errors[-OB_REPLICA_NOT_READABLE] = &_error_OB_REPLICA_NOT_READABLE;
    _errors[-OB_PARTITION_IS_SPLITTING] = &_error_OB_PARTITION_IS_SPLITTING;
    _errors[-OB_TRANS_COMMITED] = &_error_OB_TRANS_COMMITED;
    _errors[-OB_TRANS_CTX_COUNT_REACH_LIMIT] = &_error_OB_TRANS_CTX_COUNT_REACH_LIMIT;
    _errors[-OB_TRANS_CANNOT_SERIALIZE] = &_error_OB_TRANS_CANNOT_SERIALIZE;
    _errors[-OB_TRANS_WEAK_READ_VERSION_NOT_READY] = &_error_OB_TRANS_WEAK_READ_VERSION_NOT_READY;
    _errors[-OB_GTS_STANDBY_IS_INVALID] = &_error_OB_GTS_STANDBY_IS_INVALID;
    _errors[-OB_GTS_UPDATE_FAILED] = &_error_OB_GTS_UPDATE_FAILED;
    _errors[-OB_GTS_IS_NOT_SERVING] = &_error_OB_GTS_IS_NOT_SERVING;
    _errors[-OB_PG_PARTITION_NOT_EXIST] = &_error_OB_PG_PARTITION_NOT_EXIST;
    _errors[-OB_TRANS_STMT_NEED_RETRY] = &_error_OB_TRANS_STMT_NEED_RETRY;
    _errors[-OB_SAVEPOINT_NOT_EXIST] = &_error_OB_SAVEPOINT_NOT_EXIST;
    _errors[-OB_TRANS_WAIT_SCHEMA_REFRESH] = &_error_OB_TRANS_WAIT_SCHEMA_REFRESH;
    _errors[-OB_TRANS_OUT_OF_THRESHOLD] = &_error_OB_TRANS_OUT_OF_THRESHOLD;
    _errors[-OB_TRANS_XA_NOTA] = &_error_OB_TRANS_XA_NOTA;
    _errors[-OB_TRANS_XA_RMFAIL] = &_error_OB_TRANS_XA_RMFAIL;
    _errors[-OB_TRANS_XA_DUPID] = &_error_OB_TRANS_XA_DUPID;
    _errors[-OB_TRANS_XA_OUTSIDE] = &_error_OB_TRANS_XA_OUTSIDE;
    _errors[-OB_TRANS_XA_INVAL] = &_error_OB_TRANS_XA_INVAL;
    _errors[-OB_TRANS_XA_RMERR] = &_error_OB_TRANS_XA_RMERR;
    _errors[-OB_TRANS_XA_PROTO] = &_error_OB_TRANS_XA_PROTO;
    _errors[-OB_TRANS_XA_RBROLLBACK] = &_error_OB_TRANS_XA_RBROLLBACK;
    _errors[-OB_TRANS_XA_RBTIMEOUT] = &_error_OB_TRANS_XA_RBTIMEOUT;
    _errors[-OB_TRANS_XA_RDONLY] = &_error_OB_TRANS_XA_RDONLY;
    _errors[-OB_TRANS_XA_RETRY] = &_error_OB_TRANS_XA_RETRY;
    _errors[-OB_ERR_ROW_NOT_LOCKED] = &_error_OB_ERR_ROW_NOT_LOCKED;
    _errors[-OB_EMPTY_PG] = &_error_OB_EMPTY_PG;
    _errors[-OB_TRANS_XA_ERR_COMMIT] = &_error_OB_TRANS_XA_ERR_COMMIT;
    _errors[-OB_ERR_RESTORE_POINT_EXIST] = &_error_OB_ERR_RESTORE_POINT_EXIST;
    _errors[-OB_ERR_RESTORE_POINT_NOT_EXIST] = &_error_OB_ERR_RESTORE_POINT_NOT_EXIST;
    _errors[-OB_ERR_BACKUP_POINT_EXIST] = &_error_OB_ERR_BACKUP_POINT_EXIST;
    _errors[-OB_ERR_BACKUP_POINT_NOT_EXIST] = &_error_OB_ERR_BACKUP_POINT_NOT_EXIST;
    _errors[-OB_ERR_RESTORE_POINT_TOO_MANY] = &_error_OB_ERR_RESTORE_POINT_TOO_MANY;
    _errors[-OB_TRANS_XA_BRANCH_FAIL] = &_error_OB_TRANS_XA_BRANCH_FAIL;
    _errors[-OB_OBJ_LOCK_NOT_EXIST] = &_error_OB_OBJ_LOCK_NOT_EXIST;
    _errors[-OB_OBJ_LOCK_EXIST] = &_error_OB_OBJ_LOCK_EXIST;
    _errors[-OB_TRY_LOCK_OBJ_CONFLICT] = &_error_OB_TRY_LOCK_OBJ_CONFLICT;
    _errors[-OB_TX_NOLOGCB] = &_error_OB_TX_NOLOGCB;
    _errors[-OB_ERR_ADD_PARTITION_ON_INTERVAL] = &_error_OB_ERR_ADD_PARTITION_ON_INTERVAL;
    _errors[-OB_ERR_MAXVALUE_PARTITION_WITH_INTERVAL] = &_error_OB_ERR_MAXVALUE_PARTITION_WITH_INTERVAL;
    _errors[-OB_ERR_INVALID_INTERVAL_HIGH_BOUNDS] = &_error_OB_ERR_INVALID_INTERVAL_HIGH_BOUNDS;
    _errors[-OB_NO_PARTITION_FOR_INTERVAL_PART] = &_error_OB_NO_PARTITION_FOR_INTERVAL_PART;
    _errors[-OB_ERR_INTERVAL_CANNOT_BE_ZERO] = &_error_OB_ERR_INTERVAL_CANNOT_BE_ZERO;
    _errors[-OB_ERR_PARTITIONING_KEY_MAPS_TO_A_PARTITION_OUTSIDE_MAXIMUM_PERMITTED_NUMBER_OF_PARTITIONS] = &_error_OB_ERR_PARTITIONING_KEY_MAPS_TO_A_PARTITION_OUTSIDE_MAXIMUM_PERMITTED_NUMBER_OF_PARTITIONS;
    _errors[-OB_OBJ_LOCK_NOT_COMPLETED] = &_error_OB_OBJ_LOCK_NOT_COMPLETED;
    _errors[-OB_OBJ_UNLOCK_CONFLICT] = &_error_OB_OBJ_UNLOCK_CONFLICT;
    _errors[-OB_SCN_OUT_OF_BOUND] = &_error_OB_SCN_OUT_OF_BOUND;
    _errors[-OB_TRANS_IDLE_TIMEOUT] = &_error_OB_TRANS_IDLE_TIMEOUT;
    _errors[-OB_TRANS_FREE_ROUTE_NOT_SUPPORTED] = &_error_OB_TRANS_FREE_ROUTE_NOT_SUPPORTED;
    _errors[-OB_TRANS_LIVE_TOO_MUCH_TIME] = &_error_OB_TRANS_LIVE_TOO_MUCH_TIME;
    _errors[-OB_TRANS_COMMIT_TOO_MUCH_TIME] = &_error_OB_TRANS_COMMIT_TOO_MUCH_TIME;
    _errors[-OB_TRANS_TOO_MANY_PARTICIPANTS] = &_error_OB_TRANS_TOO_MANY_PARTICIPANTS;
    _errors[-OB_LOG_ALREADY_SPLIT] = &_error_OB_LOG_ALREADY_SPLIT;
    _errors[-OB_ERR_UNSUPPROTED_REF_IN_JSON_SCHEMA] = &_error_OB_ERR_UNSUPPROTED_REF_IN_JSON_SCHEMA;
    _errors[-OB_ERR_TYPE_OF_JSON_SCHEMA] = &_error_OB_ERR_TYPE_OF_JSON_SCHEMA;
    _errors[-OB_LOG_ID_NOT_FOUND] = &_error_OB_LOG_ID_NOT_FOUND;
    _errors[-OB_LSR_THREAD_STOPPED] = &_error_OB_LSR_THREAD_STOPPED;
    _errors[-OB_NO_LOG] = &_error_OB_NO_LOG;
    _errors[-OB_LOG_ID_RANGE_ERROR] = &_error_OB_LOG_ID_RANGE_ERROR;
    _errors[-OB_LOG_ITER_ENOUGH] = &_error_OB_LOG_ITER_ENOUGH;
    _errors[-OB_CLOG_INVALID_ACK] = &_error_OB_CLOG_INVALID_ACK;
    _errors[-OB_CLOG_CACHE_INVALID] = &_error_OB_CLOG_CACHE_INVALID;
    _errors[-OB_EXT_HANDLE_UNFINISH] = &_error_OB_EXT_HANDLE_UNFINISH;
    _errors[-OB_CURSOR_NOT_EXIST] = &_error_OB_CURSOR_NOT_EXIST;
    _errors[-OB_STREAM_NOT_EXIST] = &_error_OB_STREAM_NOT_EXIST;
    _errors[-OB_STREAM_BUSY] = &_error_OB_STREAM_BUSY;
    _errors[-OB_FILE_RECYCLED] = &_error_OB_FILE_RECYCLED;
    _errors[-OB_REPLAY_EAGAIN_TOO_MUCH_TIME] = &_error_OB_REPLAY_EAGAIN_TOO_MUCH_TIME;
    _errors[-OB_MEMBER_CHANGE_FAILED] = &_error_OB_MEMBER_CHANGE_FAILED;
    _errors[-OB_NO_NEED_BATCH_CTX] = &_error_OB_NO_NEED_BATCH_CTX;
    _errors[-OB_TOO_LARGE_LOG_ID] = &_error_OB_TOO_LARGE_LOG_ID;
    _errors[-OB_ALLOC_LOG_ID_NEED_RETRY] = &_error_OB_ALLOC_LOG_ID_NEED_RETRY;
    _errors[-OB_TRANS_ONE_PC_NOT_ALLOWED] = &_error_OB_TRANS_ONE_PC_NOT_ALLOWED;
    _errors[-OB_LOG_NEED_REBUILD] = &_error_OB_LOG_NEED_REBUILD;
    _errors[-OB_TOO_MANY_LOG_TASK] = &_error_OB_TOO_MANY_LOG_TASK;
    _errors[-OB_INVALID_BATCH_SIZE] = &_error_OB_INVALID_BATCH_SIZE;
    _errors[-OB_CLOG_SLIDE_TIMEOUT] = &_error_OB_CLOG_SLIDE_TIMEOUT;
    _errors[-OB_LOG_REPLAY_ERROR] = &_error_OB_LOG_REPLAY_ERROR;
    _errors[-OB_TRY_LOCK_CONFIG_CHANGE_CONFLICT] = &_error_OB_TRY_LOCK_CONFIG_CHANGE_CONFLICT;
    _errors[-OB_CLOG_DISK_HANG] = &_error_OB_CLOG_DISK_HANG;
    _errors[-OB_TABLE_LOCK_SPLIT_TWICE] = &_error_OB_TABLE_LOCK_SPLIT_TWICE;
    _errors[-OB_TABLE_LOCK_IS_SPLITTING] = &_error_OB_TABLE_LOCK_IS_SPLITTING;
    _errors[-OB_TABLE_LOCK_SPLIT_FAIL] = &_error_OB_TABLE_LOCK_SPLIT_FAIL;
    _errors[-OB_SEQ_NO_REORDER_UNDER_PDML] = &_error_OB_SEQ_NO_REORDER_UNDER_PDML;
    _errors[-OB_USER_OUTOF_DATA_DISK_SPACE] = &_error_OB_USER_OUTOF_DATA_DISK_SPACE;
    _errors[-OB_ELECTION_WARN_LOGBUF_FULL] = &_error_OB_ELECTION_WARN_LOGBUF_FULL;
    _errors[-OB_ELECTION_WARN_LOGBUF_EMPTY] = &_error_OB_ELECTION_WARN_LOGBUF_EMPTY;
    _errors[-OB_ELECTION_WARN_NOT_RUNNING] = &_error_OB_ELECTION_WARN_NOT_RUNNING;
    _errors[-OB_ELECTION_WARN_IS_RUNNING] = &_error_OB_ELECTION_WARN_IS_RUNNING;
    _errors[-OB_ELECTION_WARN_NOT_REACH_MAJORITY] = &_error_OB_ELECTION_WARN_NOT_REACH_MAJORITY;
    _errors[-OB_ELECTION_WARN_INVALID_SERVER] = &_error_OB_ELECTION_WARN_INVALID_SERVER;
    _errors[-OB_ELECTION_WARN_INVALID_LEADER] = &_error_OB_ELECTION_WARN_INVALID_LEADER;
    _errors[-OB_ELECTION_WARN_LEADER_LEASE_EXPIRED] = &_error_OB_ELECTION_WARN_LEADER_LEASE_EXPIRED;
    _errors[-OB_ELECTION_WARN_INVALID_MESSAGE] = &_error_OB_ELECTION_WARN_INVALID_MESSAGE;
    _errors[-OB_ELECTION_WARN_MESSAGE_NOT_INTIME] = &_error_OB_ELECTION_WARN_MESSAGE_NOT_INTIME;
    _errors[-OB_ELECTION_WARN_NOT_CANDIDATE] = &_error_OB_ELECTION_WARN_NOT_CANDIDATE;
    _errors[-OB_ELECTION_WARN_NOT_CANDIDATE_OR_VOTER] = &_error_OB_ELECTION_WARN_NOT_CANDIDATE_OR_VOTER;
    _errors[-OB_ELECTION_WARN_PROTOCOL_ERROR] = &_error_OB_ELECTION_WARN_PROTOCOL_ERROR;
    _errors[-OB_ELECTION_WARN_RUNTIME_OUT_OF_RANGE] = &_error_OB_ELECTION_WARN_RUNTIME_OUT_OF_RANGE;
    _errors[-OB_ELECTION_WARN_LAST_OPERATION_NOT_DONE] = &_error_OB_ELECTION_WARN_LAST_OPERATION_NOT_DONE;
    _errors[-OB_ELECTION_WARN_CURRENT_SERVER_NOT_LEADER] = &_error_OB_ELECTION_WARN_CURRENT_SERVER_NOT_LEADER;
    _errors[-OB_ELECTION_WARN_NO_PREPARE_MESSAGE] = &_error_OB_ELECTION_WARN_NO_PREPARE_MESSAGE;
    _errors[-OB_ELECTION_ERROR_MULTI_PREPARE_MESSAGE] = &_error_OB_ELECTION_ERROR_MULTI_PREPARE_MESSAGE;
    _errors[-OB_ELECTION_NOT_EXIST] = &_error_OB_ELECTION_NOT_EXIST;
    _errors[-OB_ELECTION_MGR_IS_RUNNING] = &_error_OB_ELECTION_MGR_IS_RUNNING;
    _errors[-OB_ELECTION_WARN_NO_MAJORITY_PREPARE_MESSAGE] = &_error_OB_ELECTION_WARN_NO_MAJORITY_PREPARE_MESSAGE;
    _errors[-OB_ELECTION_ASYNC_LOG_WARN_INIT] = &_error_OB_ELECTION_ASYNC_LOG_WARN_INIT;
    _errors[-OB_ELECTION_WAIT_LEADER_MESSAGE] = &_error_OB_ELECTION_WAIT_LEADER_MESSAGE;
    _errors[-OB_ELECTION_GROUP_NOT_EXIST] = &_error_OB_ELECTION_GROUP_NOT_EXIST;
    _errors[-OB_UNEXPECT_EG_VERSION] = &_error_OB_UNEXPECT_EG_VERSION;
    _errors[-OB_ELECTION_GROUP_MGR_IS_RUNNING] = &_error_OB_ELECTION_GROUP_MGR_IS_RUNNING;
    _errors[-OB_ELECTION_MGR_NOT_RUNNING] = &_error_OB_ELECTION_MGR_NOT_RUNNING;
    _errors[-OB_ELECTION_ERROR_VOTE_MSG_CONFLICT] = &_error_OB_ELECTION_ERROR_VOTE_MSG_CONFLICT;
    _errors[-OB_ELECTION_ERROR_DUPLICATED_MSG] = &_error_OB_ELECTION_ERROR_DUPLICATED_MSG;
    _errors[-OB_ELECTION_WARN_T1_NOT_MATCH] = &_error_OB_ELECTION_WARN_T1_NOT_MATCH;
    _errors[-OB_ELECTION_BELOW_MAJORITY] = &_error_OB_ELECTION_BELOW_MAJORITY;
    _errors[-OB_ELECTION_OVER_MAJORITY] = &_error_OB_ELECTION_OVER_MAJORITY;
    _errors[-OB_ELECTION_DURING_UPGRADING] = &_error_OB_ELECTION_DURING_UPGRADING;
    _errors[-OB_TRANSFER_TASK_COMPLETED] = &_error_OB_TRANSFER_TASK_COMPLETED;
    _errors[-OB_TOO_MANY_TRANSFER_TASK] = &_error_OB_TOO_MANY_TRANSFER_TASK;
    _errors[-OB_TRANSFER_TASK_EXIST] = &_error_OB_TRANSFER_TASK_EXIST;
    _errors[-OB_TRANSFER_TASK_NOT_EXIST] = &_error_OB_TRANSFER_TASK_NOT_EXIST;
    _errors[-OB_NOT_ALLOW_TO_REMOVE] = &_error_OB_NOT_ALLOW_TO_REMOVE;
    _errors[-OB_RG_NOT_MATCH] = &_error_OB_RG_NOT_MATCH;
    _errors[-OB_TRANSFER_TASK_ABORTED] = &_error_OB_TRANSFER_TASK_ABORTED;
    _errors[-OB_TRANSFER_INVALID_MESSAGE] = &_error_OB_TRANSFER_INVALID_MESSAGE;
    _errors[-OB_TRANSFER_CTX_TS_NOT_MATCH] = &_error_OB_TRANSFER_CTX_TS_NOT_MATCH;
    _errors[-OB_TRANSFER_SYS_ERROR] = &_error_OB_TRANSFER_SYS_ERROR;
    _errors[-OB_TRANSFER_MEMBER_LIST_NOT_SAME] = &_error_OB_TRANSFER_MEMBER_LIST_NOT_SAME;
    _errors[-OB_ERR_UNEXPECTED_LOCK_OWNER] = &_error_OB_ERR_UNEXPECTED_LOCK_OWNER;
    _errors[-OB_LS_TRANSFER_SCN_TOO_SMALL] = &_error_OB_LS_TRANSFER_SCN_TOO_SMALL;
    _errors[-OB_TABLET_TRANSFER_SEQ_NOT_MATCH] = &_error_OB_TABLET_TRANSFER_SEQ_NOT_MATCH;
    _errors[-OB_TRANSFER_DETECT_ACTIVE_TRANS] = &_error_OB_TRANSFER_DETECT_ACTIVE_TRANS;
    _errors[-OB_TRANSFER_SRC_LS_NOT_EXIST] = &_error_OB_TRANSFER_SRC_LS_NOT_EXIST;
    _errors[-OB_TRANSFER_SRC_TABLET_NOT_EXIST] = &_error_OB_TRANSFER_SRC_TABLET_NOT_EXIST;
    _errors[-OB_LS_NEED_REBUILD] = &_error_OB_LS_NEED_REBUILD;
    _errors[-OB_OBSOLETE_CLOG_NEED_SKIP] = &_error_OB_OBSOLETE_CLOG_NEED_SKIP;
    _errors[-OB_TRANSFER_WAIT_TRANSACTION_END_TIMEOUT] = &_error_OB_TRANSFER_WAIT_TRANSACTION_END_TIMEOUT;
    _errors[-OB_TABLET_GC_LOCK_CONFLICT] = &_error_OB_TABLET_GC_LOCK_CONFLICT;
    _errors[-OB_SEQUENCE_NOT_MATCH] = &_error_OB_SEQUENCE_NOT_MATCH;
    _errors[-OB_SEQUENCE_TOO_SMALL] = &_error_OB_SEQUENCE_TOO_SMALL;
    _errors[-OB_TRANSFER_CANNOT_START] = &_error_OB_TRANSFER_CANNOT_START;
    _errors[-OB_ERR_GIS_DIFFERENT_SRIDS] = &_error_OB_ERR_GIS_DIFFERENT_SRIDS;
    _errors[-OB_ERR_GIS_UNSUPPORTED_ARGUMENT] = &_error_OB_ERR_GIS_UNSUPPORTED_ARGUMENT;
    _errors[-OB_ERR_GIS_UNKNOWN_ERROR] = &_error_OB_ERR_GIS_UNKNOWN_ERROR;
    _errors[-OB_ERR_GIS_UNKNOWN_EXCEPTION] = &_error_OB_ERR_GIS_UNKNOWN_EXCEPTION;
    _errors[-OB_ERR_GIS_INVALID_DATA] = &_error_OB_ERR_GIS_INVALID_DATA;
    _errors[-OB_ERR_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION] = &_error_OB_ERR_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION;
    _errors[-OB_ERR_BOOST_GEOMETRY_CENTROID_EXCEPTION] = &_error_OB_ERR_BOOST_GEOMETRY_CENTROID_EXCEPTION;
    _errors[-OB_ERR_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION] = &_error_OB_ERR_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION;
    _errors[-OB_ERR_BOOST_GEOMETRY_TURN_INFO_EXCEPTION] = &_error_OB_ERR_BOOST_GEOMETRY_TURN_INFO_EXCEPTION;
    _errors[-OB_ERR_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION] = &_error_OB_ERR_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION;
    _errors[-OB_ERR_BOOST_GEOMETRY_UNKNOWN_EXCEPTION] = &_error_OB_ERR_BOOST_GEOMETRY_UNKNOWN_EXCEPTION;
    _errors[-OB_ERR_GIS_DATA_WRONG_ENDIANESS] = &_error_OB_ERR_GIS_DATA_WRONG_ENDIANESS;
    _errors[-OB_ERR_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS] = &_error_OB_ERR_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS;
    _errors[-OB_ERR_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION] = &_error_OB_ERR_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION;
    _errors[-OB_ERR_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED] = &_error_OB_ERR_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED;
    _errors[-OB_ERR_UNEXPECTED_GEOMETRY_TYPE] = &_error_OB_ERR_UNEXPECTED_GEOMETRY_TYPE;
    _errors[-OB_ERR_SRS_PARSE_ERROR] = &_error_OB_ERR_SRS_PARSE_ERROR;
    _errors[-OB_ERR_SRS_PROJ_PARAMETER_MISSING] = &_error_OB_ERR_SRS_PROJ_PARAMETER_MISSING;
    _errors[-OB_ERR_WARN_SRS_NOT_FOUND] = &_error_OB_ERR_WARN_SRS_NOT_FOUND;
    _errors[-OB_ERR_SRS_NOT_CARTESIAN] = &_error_OB_ERR_SRS_NOT_CARTESIAN;
    _errors[-OB_ERR_SRS_NOT_CARTESIAN_UNDEFINED] = &_error_OB_ERR_SRS_NOT_CARTESIAN_UNDEFINED;
    _errors[-OB_ERR_SRS_NOT_FOUND] = &_error_OB_ERR_SRS_NOT_FOUND;
    _errors[-OB_ERR_WARN_SRS_NOT_FOUND_AXIS_ORDER] = &_error_OB_ERR_WARN_SRS_NOT_FOUND_AXIS_ORDER;
    _errors[-OB_ERR_NOT_IMPLEMENTED_FOR_GEOGRAPHIC_SRS] = &_error_OB_ERR_NOT_IMPLEMENTED_FOR_GEOGRAPHIC_SRS;
    _errors[-OB_ERR_WRONG_SRID_FOR_COLUMN] = &_error_OB_ERR_WRONG_SRID_FOR_COLUMN;
    _errors[-OB_ERR_CANNOT_ALTER_SRID_DUE_TO_INDEX] = &_error_OB_ERR_CANNOT_ALTER_SRID_DUE_TO_INDEX;
    _errors[-OB_ERR_WARN_USELESS_SPATIAL_INDEX] = &_error_OB_ERR_WARN_USELESS_SPATIAL_INDEX;
    _errors[-OB_ERR_ONLY_IMPLEMENTED_FOR_SRID_0_AND_4326] = &_error_OB_ERR_ONLY_IMPLEMENTED_FOR_SRID_0_AND_4326;
    _errors[-OB_ERR_NOT_IMPLEMENTED_FOR_CARTESIAN_SRS] = &_error_OB_ERR_NOT_IMPLEMENTED_FOR_CARTESIAN_SRS;
    _errors[-OB_ERR_NOT_IMPLEMENTED_FOR_PROJECTED_SRS] = &_error_OB_ERR_NOT_IMPLEMENTED_FOR_PROJECTED_SRS;
    _errors[-OB_ERR_SRS_MISSING_MANDATORY_ATTRIBUTE] = &_error_OB_ERR_SRS_MISSING_MANDATORY_ATTRIBUTE;
    _errors[-OB_ERR_SRS_MULTIPLE_ATTRIBUTE_DEFINITIONS] = &_error_OB_ERR_SRS_MULTIPLE_ATTRIBUTE_DEFINITIONS;
    _errors[-OB_ERR_SRS_NAME_CANT_BE_EMPTY_OR_WHITESPACE] = &_error_OB_ERR_SRS_NAME_CANT_BE_EMPTY_OR_WHITESPACE;
    _errors[-OB_ERR_SRS_ORGANIZATION_CANT_BE_EMPTY_OR_WHITESPACE] = &_error_OB_ERR_SRS_ORGANIZATION_CANT_BE_EMPTY_OR_WHITESPACE;
    _errors[-OB_ERR_SRS_ID_ALREADY_EXISTS] = &_error_OB_ERR_SRS_ID_ALREADY_EXISTS;
    _errors[-OB_ERR_WARN_SRS_ID_ALREADY_EXISTS] = &_error_OB_ERR_WARN_SRS_ID_ALREADY_EXISTS;
    _errors[-OB_ERR_CANT_MODIFY_SRID_0] = &_error_OB_ERR_CANT_MODIFY_SRID_0;
    _errors[-OB_ERR_WARN_RESERVED_SRID_RANGE] = &_error_OB_ERR_WARN_RESERVED_SRID_RANGE;
    _errors[-OB_ERR_CANT_MODIFY_SRS_USED_BY_COLUMN] = &_error_OB_ERR_CANT_MODIFY_SRS_USED_BY_COLUMN;
    _errors[-OB_ERR_SRS_INVALID_CHARACTER_IN_ATTRIBUTE] = &_error_OB_ERR_SRS_INVALID_CHARACTER_IN_ATTRIBUTE;
    _errors[-OB_ERR_SRS_ATTRIBUTE_STRING_TOO_LONG] = &_error_OB_ERR_SRS_ATTRIBUTE_STRING_TOO_LONG;
    _errors[-OB_ERR_SRS_NOT_GEOGRAPHIC] = &_error_OB_ERR_SRS_NOT_GEOGRAPHIC;
    _errors[-OB_ERR_POLYGON_TOO_LARGE] = &_error_OB_ERR_POLYGON_TOO_LARGE;
    _errors[-OB_ERR_SPATIAL_UNIQUE_INDEX] = &_error_OB_ERR_SPATIAL_UNIQUE_INDEX;
    _errors[-OB_ERR_GEOMETRY_PARAM_LONGITUDE_OUT_OF_RANGE] = &_error_OB_ERR_GEOMETRY_PARAM_LONGITUDE_OUT_OF_RANGE;
    _errors[-OB_ERR_GEOMETRY_PARAM_LATITUDE_OUT_OF_RANGE] = &_error_OB_ERR_GEOMETRY_PARAM_LATITUDE_OUT_OF_RANGE;
    _errors[-OB_ERR_SRS_GEOGCS_INVALID_AXES] = &_error_OB_ERR_SRS_GEOGCS_INVALID_AXES;
    _errors[-OB_ERR_SRS_INVALID_SEMI_MAJOR_AXIS] = &_error_OB_ERR_SRS_INVALID_SEMI_MAJOR_AXIS;
    _errors[-OB_ERR_SRS_INVALID_INVERSE_FLATTENING] = &_error_OB_ERR_SRS_INVALID_INVERSE_FLATTENING;
    _errors[-OB_ERR_SRS_INVALID_ANGULAR_UNIT] = &_error_OB_ERR_SRS_INVALID_ANGULAR_UNIT;
    _errors[-OB_ERR_SRS_INVALID_PRIME_MERIDIAN] = &_error_OB_ERR_SRS_INVALID_PRIME_MERIDIAN;
    _errors[-OB_ERR_TRANSFORM_SOURCE_SRS_NOT_SUPPORTED] = &_error_OB_ERR_TRANSFORM_SOURCE_SRS_NOT_SUPPORTED;
    _errors[-OB_ERR_TRANSFORM_TARGET_SRS_NOT_SUPPORTED] = &_error_OB_ERR_TRANSFORM_TARGET_SRS_NOT_SUPPORTED;
    _errors[-OB_ERR_TRANSFORM_SOURCE_SRS_MISSING_TOWGS84] = &_error_OB_ERR_TRANSFORM_SOURCE_SRS_MISSING_TOWGS84;
    _errors[-OB_ERR_TRANSFORM_TARGET_SRS_MISSING_TOWGS84] = &_error_OB_ERR_TRANSFORM_TARGET_SRS_MISSING_TOWGS84;
    _errors[-OB_ERR_FUNCTIONAL_INDEX_ON_JSON_OR_GEOMETRY_FUNCTION] = &_error_OB_ERR_FUNCTIONAL_INDEX_ON_JSON_OR_GEOMETRY_FUNCTION;
    _errors[-OB_ERR_SPATIAL_FUNCTIONAL_INDEX] = &_error_OB_ERR_SPATIAL_FUNCTIONAL_INDEX;
    _errors[-OB_ERR_GEOMETRY_IN_UNKNOWN_LENGTH_UNIT] = &_error_OB_ERR_GEOMETRY_IN_UNKNOWN_LENGTH_UNIT;
    _errors[-OB_ERR_INVALID_CAST_TO_GEOMETRY] = &_error_OB_ERR_INVALID_CAST_TO_GEOMETRY;
    _errors[-OB_ERR_INVALID_CAST_POLYGON_RING_DIRECTION] = &_error_OB_ERR_INVALID_CAST_POLYGON_RING_DIRECTION;
    _errors[-OB_ERR_GIS_DIFFERENT_SRIDS_AGGREGATION] = &_error_OB_ERR_GIS_DIFFERENT_SRIDS_AGGREGATION;
    _errors[-OB_ERR_LONGITUDE_OUT_OF_RANGE] = &_error_OB_ERR_LONGITUDE_OUT_OF_RANGE;
    _errors[-OB_ERR_LATITUDE_OUT_OF_RANGE] = &_error_OB_ERR_LATITUDE_OUT_OF_RANGE;
    _errors[-OB_ERR_STD_BAD_ALLOC_ERROR] = &_error_OB_ERR_STD_BAD_ALLOC_ERROR;
    _errors[-OB_ERR_STD_DOMAIN_ERROR] = &_error_OB_ERR_STD_DOMAIN_ERROR;
    _errors[-OB_ERR_STD_LENGTH_ERROR] = &_error_OB_ERR_STD_LENGTH_ERROR;
    _errors[-OB_ERR_STD_INVALID_ARGUMENT] = &_error_OB_ERR_STD_INVALID_ARGUMENT;
    _errors[-OB_ERR_STD_OUT_OF_RANGE_ERROR] = &_error_OB_ERR_STD_OUT_OF_RANGE_ERROR;
    _errors[-OB_ERR_STD_OVERFLOW_ERROR] = &_error_OB_ERR_STD_OVERFLOW_ERROR;
    _errors[-OB_ERR_STD_RANGE_ERROR] = &_error_OB_ERR_STD_RANGE_ERROR;
    _errors[-OB_ERR_STD_UNDERFLOW_ERROR] = &_error_OB_ERR_STD_UNDERFLOW_ERROR;
    _errors[-OB_ERR_STD_LOGIC_ERROR] = &_error_OB_ERR_STD_LOGIC_ERROR;
    _errors[-OB_ERR_STD_RUNTIME_ERROR] = &_error_OB_ERR_STD_RUNTIME_ERROR;
    _errors[-OB_ERR_STD_UNKNOWN_EXCEPTION] = &_error_OB_ERR_STD_UNKNOWN_EXCEPTION;
    _errors[-OB_ERR_CANT_CREATE_GEOMETRY_OBJECT] = &_error_OB_ERR_CANT_CREATE_GEOMETRY_OBJECT;
    _errors[-OB_ERR_SRID_WRONG_USAGE] = &_error_OB_ERR_SRID_WRONG_USAGE;
    _errors[-OB_ERR_INDEX_ORDER_WRONG_USAGE] = &_error_OB_ERR_INDEX_ORDER_WRONG_USAGE;
    _errors[-OB_ERR_SPATIAL_MUST_HAVE_GEOM_COL] = &_error_OB_ERR_SPATIAL_MUST_HAVE_GEOM_COL;
    _errors[-OB_ERR_SPATIAL_CANT_HAVE_NULL] = &_error_OB_ERR_SPATIAL_CANT_HAVE_NULL;
    _errors[-OB_ERR_INDEX_TYPE_NOT_SUPPORTED_FOR_SPATIAL_INDEX] = &_error_OB_ERR_INDEX_TYPE_NOT_SUPPORTED_FOR_SPATIAL_INDEX;
    _errors[-OB_ERR_UNIT_NOT_FOUND] = &_error_OB_ERR_UNIT_NOT_FOUND;
    _errors[-OB_ERR_INVALID_OPTION_KEY_VALUE_PAIR] = &_error_OB_ERR_INVALID_OPTION_KEY_VALUE_PAIR;
    _errors[-OB_ERR_NONPOSITIVE_RADIUS] = &_error_OB_ERR_NONPOSITIVE_RADIUS;
    _errors[-OB_ERR_SRS_EMPTY] = &_error_OB_ERR_SRS_EMPTY;
    _errors[-OB_ERR_INVALID_OPTION_KEY] = &_error_OB_ERR_INVALID_OPTION_KEY;
    _errors[-OB_ERR_INVALID_OPTION_VALUE] = &_error_OB_ERR_INVALID_OPTION_VALUE;
    _errors[-OB_ERR_INVALID_GEOMETRY_TYPE] = &_error_OB_ERR_INVALID_GEOMETRY_TYPE;
    _errors[-OB_ERR_FTS_MUST_HAVE_TEXT_COL] = &_error_OB_ERR_FTS_MUST_HAVE_TEXT_COL;
    _errors[-OB_ERR_DIMENSION_NUMBER_IS_OUT_OF_RANGE] = &_error_OB_ERR_DIMENSION_NUMBER_IS_OUT_OF_RANGE;
    _errors[-OB_ERR_INVALID_GTYPE_IN_SDO_GEROMETRY] = &_error_OB_ERR_INVALID_GTYPE_IN_SDO_GEROMETRY;
    _errors[-OB_ERR_INVALID_SRID_IN_SDO_GEOMETRY] = &_error_OB_ERR_INVALID_SRID_IN_SDO_GEOMETRY;
    _errors[-OB_ERR_INVALID_GTYPE_FOR_POINT_OBJECT] = &_error_OB_ERR_INVALID_GTYPE_FOR_POINT_OBJECT;
    _errors[-OB_ERR_INVALID_NULL_SDO_GEOMETRY] = &_error_OB_ERR_INVALID_NULL_SDO_GEOMETRY;
    _errors[-OB_ERR_INVALID_DATA_IN_SDO_ELEM_INFO_ARRAY] = &_error_OB_ERR_INVALID_DATA_IN_SDO_ELEM_INFO_ARRAY;
    _errors[-OB_ERR_INVALID_DATA_IN_SDO_ORDINATE_ARRAY] = &_error_OB_ERR_INVALID_DATA_IN_SDO_ORDINATE_ARRAY;
    _errors[-OB_ERR_VALUE_NOT_ALLOWED] = &_error_OB_ERR_VALUE_NOT_ALLOWED;
    _errors[-OB_ERR_INVALID_XML_DATATYPE] = &_error_OB_ERR_INVALID_XML_DATATYPE;
    _errors[-OB_ERR_XML_MISSING_COMMA] = &_error_OB_ERR_XML_MISSING_COMMA;
    _errors[-OB_ERR_INVALID_XPATH_EXPRESSION] = &_error_OB_ERR_INVALID_XPATH_EXPRESSION;
    _errors[-OB_ERR_EXTRACTVALUE_MULTI_NODES] = &_error_OB_ERR_EXTRACTVALUE_MULTI_NODES;
    _errors[-OB_ERR_XML_FRAMENT_CONVERT] = &_error_OB_ERR_XML_FRAMENT_CONVERT;
    _errors[-OB_INVALID_PRINT_OPTION] = &_error_OB_INVALID_PRINT_OPTION;
    _errors[-OB_XML_CHAR_LEN_TOO_SMALL] = &_error_OB_XML_CHAR_LEN_TOO_SMALL;
    _errors[-OB_XPATH_EXPRESSION_UNSUPPORTED] = &_error_OB_XPATH_EXPRESSION_UNSUPPORTED;
    _errors[-OB_EXTRACTVALUE_NOT_LEAF_NODE] = &_error_OB_EXTRACTVALUE_NOT_LEAF_NODE;
    _errors[-OB_XML_INSERT_FRAGMENT] = &_error_OB_XML_INSERT_FRAGMENT;
    _errors[-OB_ERR_NO_ORDER_MAP_SQL] = &_error_OB_ERR_NO_ORDER_MAP_SQL;
    _errors[-OB_ERR_XMLELEMENT_ALIASED] = &_error_OB_ERR_XMLELEMENT_ALIASED;
    _errors[-OB_INVALID_ALTERATIONG_DATATYPE] = &_error_OB_INVALID_ALTERATIONG_DATATYPE;
    _errors[-OB_INVALID_MODIFICATION_OF_COLUMNS] = &_error_OB_INVALID_MODIFICATION_OF_COLUMNS;
    _errors[-OB_ERR_NULL_FOR_XML_CONSTRUCTOR] = &_error_OB_ERR_NULL_FOR_XML_CONSTRUCTOR;
    _errors[-OB_ERR_XML_INDEX] = &_error_OB_ERR_XML_INDEX;
    _errors[-OB_ERR_UPDATE_XML_WITH_INVALID_NODE] = &_error_OB_ERR_UPDATE_XML_WITH_INVALID_NODE;
    _errors[-OB_LOB_VALUE_NOT_EXIST] = &_error_OB_LOB_VALUE_NOT_EXIST;
    _errors[-OB_ERR_JSON_FUN_UNSUPPORTED_TYPE] = &_error_OB_ERR_JSON_FUN_UNSUPPORTED_TYPE;
    _errors[-OB_ERR_XQUERY_MULTI_VALUE] = &_error_OB_ERR_XQUERY_MULTI_VALUE;
    _errors[-OB_ERR_PARSE_XQUERY_EXPR] = &_error_OB_ERR_PARSE_XQUERY_EXPR;
    _errors[-OB_ERR_LACK_XQUERY_LITERAL] = &_error_OB_ERR_LACK_XQUERY_LITERAL;
    _errors[-OB_ERR_TOO_MANY_PREFIX_DECLARE] = &_error_OB_ERR_TOO_MANY_PREFIX_DECLARE;
    _errors[-OB_ERR_XQUERY_TYPE_MISMATCH] = &_error_OB_ERR_XQUERY_TYPE_MISMATCH;
    _errors[-OB_ERR_XPATH_INVALID_NODE] = &_error_OB_ERR_XPATH_INVALID_NODE;
    _errors[-OB_ERR_XPATH_NO_NODE] = &_error_OB_ERR_XPATH_NO_NODE;
    _errors[-OB_ERR_XQUERY_UNSUPPORTED] = &_error_OB_ERR_XQUERY_UNSUPPORTED;
    _errors[-OB_ERR_INVALID_XML_CHILD_NAME] = &_error_OB_ERR_INVALID_XML_CHILD_NAME;
    _errors[-OB_ERR_XML_NOT_SUPPORT_OPERATION] = &_error_OB_ERR_XML_NOT_SUPPORT_OPERATION;
    _errors[-OB_ERR_DUP_DEF_NAMESPACE] = &_error_OB_ERR_DUP_DEF_NAMESPACE;
    _errors[-OB_ERR_COMPARE_VARRAY_LOB_ATTR] = &_error_OB_ERR_COMPARE_VARRAY_LOB_ATTR;
    _errors[-OB_ERR_XML_PARENT_ALREADY_CONTAINS_CHILD] = &_error_OB_ERR_XML_PARENT_ALREADY_CONTAINS_CHILD;
    _errors[-OB_SERVER_IS_INIT] = &_error_OB_SERVER_IS_INIT;
    _errors[-OB_SERVER_IS_STOPPING] = &_error_OB_SERVER_IS_STOPPING;
    _errors[-OB_PACKET_CHECKSUM_ERROR] = &_error_OB_PACKET_CHECKSUM_ERROR;
    _errors[-OB_PACKET_CLUSTER_ID_NOT_MATCH] = &_error_OB_PACKET_CLUSTER_ID_NOT_MATCH;
    _errors[-OB_TENANT_ID_NOT_MATCH] = &_error_OB_TENANT_ID_NOT_MATCH;
    _errors[-OB_URI_ERROR] = &_error_OB_URI_ERROR;
    _errors[-OB_FINAL_MD5_ERROR] = &_error_OB_FINAL_MD5_ERROR;
    _errors[-OB_OSS_ERROR] = &_error_OB_OSS_ERROR;
    _errors[-OB_INIT_MD5_ERROR] = &_error_OB_INIT_MD5_ERROR;
    _errors[-OB_OUT_OF_ELEMENT] = &_error_OB_OUT_OF_ELEMENT;
    _errors[-OB_UPDATE_MD5_ERROR] = &_error_OB_UPDATE_MD5_ERROR;
    _errors[-OB_FILE_LENGTH_INVALID] = &_error_OB_FILE_LENGTH_INVALID;
    _errors[-OB_NOT_READ_ALL_DATA] = &_error_OB_NOT_READ_ALL_DATA;
    _errors[-OB_BUILD_MD5_ERROR] = &_error_OB_BUILD_MD5_ERROR;
    _errors[-OB_MD5_NOT_MATCH] = &_error_OB_MD5_NOT_MATCH;
    _errors[-OB_BACKUP_FILE_NOT_EXIST] = &_error_OB_BACKUP_FILE_NOT_EXIST;
    _errors[-OB_OSS_DATA_VERSION_NOT_MATCHED] = &_error_OB_OSS_DATA_VERSION_NOT_MATCHED;
    _errors[-OB_OSS_WRITE_ERROR] = &_error_OB_OSS_WRITE_ERROR;
    _errors[-OB_RESTORE_IN_PROGRESS] = &_error_OB_RESTORE_IN_PROGRESS;
    _errors[-OB_AGENT_INITING_BACKUP_COUNT_ERROR] = &_error_OB_AGENT_INITING_BACKUP_COUNT_ERROR;
    _errors[-OB_CLUSTER_NAME_NOT_EQUAL] = &_error_OB_CLUSTER_NAME_NOT_EQUAL;
    _errors[-OB_RS_LIST_INVAILD] = &_error_OB_RS_LIST_INVAILD;
    _errors[-OB_AGENT_HAS_FAILED_TASK] = &_error_OB_AGENT_HAS_FAILED_TASK;
    _errors[-OB_RESTORE_PARTITION_IS_COMPLETE] = &_error_OB_RESTORE_PARTITION_IS_COMPLETE;
    _errors[-OB_RESTORE_PARTITION_TWICE] = &_error_OB_RESTORE_PARTITION_TWICE;
    _errors[-OB_STOP_DROP_SCHEMA] = &_error_OB_STOP_DROP_SCHEMA;
    _errors[-OB_CANNOT_START_LOG_ARCHIVE_BACKUP] = &_error_OB_CANNOT_START_LOG_ARCHIVE_BACKUP;
    _errors[-OB_ALREADY_NO_LOG_ARCHIVE_BACKUP] = &_error_OB_ALREADY_NO_LOG_ARCHIVE_BACKUP;
    _errors[-OB_LOG_ARCHIVE_BACKUP_INFO_NOT_EXIST] = &_error_OB_LOG_ARCHIVE_BACKUP_INFO_NOT_EXIST;
    _errors[-OB_INVALID_BACKUP_DEST] = &_error_OB_INVALID_BACKUP_DEST;
    _errors[-OB_LOG_ARCHIVE_INTERRUPTED] = &_error_OB_LOG_ARCHIVE_INTERRUPTED;
    _errors[-OB_LOG_ARCHIVE_STAT_NOT_MATCH] = &_error_OB_LOG_ARCHIVE_STAT_NOT_MATCH;
    _errors[-OB_LOG_ARCHIVE_NOT_RUNNING] = &_error_OB_LOG_ARCHIVE_NOT_RUNNING;
    _errors[-OB_LOG_ARCHIVE_INVALID_ROUND] = &_error_OB_LOG_ARCHIVE_INVALID_ROUND;
    _errors[-OB_REPLICA_CANNOT_BACKUP] = &_error_OB_REPLICA_CANNOT_BACKUP;
    _errors[-OB_BACKUP_INFO_NOT_EXIST] = &_error_OB_BACKUP_INFO_NOT_EXIST;
    _errors[-OB_BACKUP_INFO_NOT_MATCH] = &_error_OB_BACKUP_INFO_NOT_MATCH;
    _errors[-OB_LOG_ARCHIVE_ALREADY_STOPPED] = &_error_OB_LOG_ARCHIVE_ALREADY_STOPPED;
    _errors[-OB_RESTORE_INDEX_FAILED] = &_error_OB_RESTORE_INDEX_FAILED;
    _errors[-OB_BACKUP_IN_PROGRESS] = &_error_OB_BACKUP_IN_PROGRESS;
    _errors[-OB_INVALID_LOG_ARCHIVE_STATUS] = &_error_OB_INVALID_LOG_ARCHIVE_STATUS;
    _errors[-OB_CANNOT_ADD_REPLICA_DURING_SET_MEMBER_LIST] = &_error_OB_CANNOT_ADD_REPLICA_DURING_SET_MEMBER_LIST;
    _errors[-OB_LOG_ARCHIVE_LEADER_CHANGED] = &_error_OB_LOG_ARCHIVE_LEADER_CHANGED;
    _errors[-OB_BACKUP_CAN_NOT_START] = &_error_OB_BACKUP_CAN_NOT_START;
    _errors[-OB_CANCEL_BACKUP_NOT_ALLOWED] = &_error_OB_CANCEL_BACKUP_NOT_ALLOWED;
    _errors[-OB_BACKUP_DATA_VERSION_GAP_OVER_LIMIT] = &_error_OB_BACKUP_DATA_VERSION_GAP_OVER_LIMIT;
    _errors[-OB_PG_LOG_ARCHIVE_STATUS_NOT_INIT] = &_error_OB_PG_LOG_ARCHIVE_STATUS_NOT_INIT;
    _errors[-OB_BACKUP_DELETE_DATA_IN_PROGRESS] = &_error_OB_BACKUP_DELETE_DATA_IN_PROGRESS;
    _errors[-OB_BACKUP_DELETE_BACKUP_SET_NOT_ALLOWED] = &_error_OB_BACKUP_DELETE_BACKUP_SET_NOT_ALLOWED;
    _errors[-OB_INVALID_BACKUP_SET_ID] = &_error_OB_INVALID_BACKUP_SET_ID;
    _errors[-OB_BACKUP_INVALID_PASSWORD] = &_error_OB_BACKUP_INVALID_PASSWORD;
    _errors[-OB_ISOLATED_BACKUP_SET] = &_error_OB_ISOLATED_BACKUP_SET;
    _errors[-OB_CANNOT_CANCEL_STOPPED_BACKUP] = &_error_OB_CANNOT_CANCEL_STOPPED_BACKUP;
    _errors[-OB_BACKUP_BACKUP_CAN_NOT_START] = &_error_OB_BACKUP_BACKUP_CAN_NOT_START;
    _errors[-OB_BACKUP_MOUNT_FILE_NOT_VALID] = &_error_OB_BACKUP_MOUNT_FILE_NOT_VALID;
    _errors[-OB_BACKUP_CLEAN_INFO_NOT_MATCH] = &_error_OB_BACKUP_CLEAN_INFO_NOT_MATCH;
    _errors[-OB_CANCEL_DELETE_BACKUP_NOT_ALLOWED] = &_error_OB_CANCEL_DELETE_BACKUP_NOT_ALLOWED;
    _errors[-OB_BACKUP_CLEAN_INFO_NOT_EXIST] = &_error_OB_BACKUP_CLEAN_INFO_NOT_EXIST;
    _errors[-OB_CANNOT_SET_BACKUP_REGION] = &_error_OB_CANNOT_SET_BACKUP_REGION;
    _errors[-OB_CANNOT_SET_BACKUP_ZONE] = &_error_OB_CANNOT_SET_BACKUP_ZONE;
    _errors[-OB_BACKUP_BACKUP_REACH_MAX_BACKUP_TIMES] = &_error_OB_BACKUP_BACKUP_REACH_MAX_BACKUP_TIMES;
    _errors[-OB_COS_ERROR] = &_error_OB_COS_ERROR;
    _errors[-OB_IO_LIMIT] = &_error_OB_IO_LIMIT;
    _errors[-OB_BACKUP_BACKUP_REACH_COPY_LIMIT] = &_error_OB_BACKUP_BACKUP_REACH_COPY_LIMIT;
    _errors[-OB_BACKUP_IO_PROHIBITED] = &_error_OB_BACKUP_IO_PROHIBITED;
    _errors[-OB_ARCHIVE_LOG_NOT_CONTINUES_WITH_DATA] = &_error_OB_ARCHIVE_LOG_NOT_CONTINUES_WITH_DATA;
    _errors[-OB_AGENT_HAS_SUSPENDED] = &_error_OB_AGENT_HAS_SUSPENDED;
    _errors[-OB_BACKUP_CONFLICT_VALUE] = &_error_OB_BACKUP_CONFLICT_VALUE;
    _errors[-OB_BACKUP_DELETE_BACKUP_PIECE_NOT_ALLOWED] = &_error_OB_BACKUP_DELETE_BACKUP_PIECE_NOT_ALLOWED;
    _errors[-OB_BACKUP_DEST_NOT_CONNECT] = &_error_OB_BACKUP_DEST_NOT_CONNECT;
    _errors[-OB_BACKUP_PERMISSION_DENIED] = &_error_OB_BACKUP_PERMISSION_DENIED;
    _errors[-OB_ESI_SESSION_CONFLICTS] = &_error_OB_ESI_SESSION_CONFLICTS;
    _errors[-OB_ESI_OBS_ERROR] = &_error_OB_ESI_OBS_ERROR;
    _errors[-OB_BACKUP_VALIDATE_TASK_SKIPPED] = &_error_OB_BACKUP_VALIDATE_TASK_SKIPPED;
    _errors[-OB_ESI_IO_ERROR] = &_error_OB_ESI_IO_ERROR;
    _errors[-OB_BACKUP_META_INDEX_NOT_EXIST] = &_error_OB_BACKUP_META_INDEX_NOT_EXIST;
    _errors[-OB_ARCHIVE_ROUND_NOT_CONTINUOUS] = &_error_OB_ARCHIVE_ROUND_NOT_CONTINUOUS;
    _errors[-OB_ARCHIVE_LOG_TO_END] = &_error_OB_ARCHIVE_LOG_TO_END;
    _errors[-OB_ARCHIVE_LOG_RECYCLED] = &_error_OB_ARCHIVE_LOG_RECYCLED;
    _errors[-OB_BACKUP_FORMAT_FILE_NOT_EXIST] = &_error_OB_BACKUP_FORMAT_FILE_NOT_EXIST;
    _errors[-OB_BACKUP_FORMAT_FILE_NOT_MATCH] = &_error_OB_BACKUP_FORMAT_FILE_NOT_MATCH;
    _errors[-OB_BACKUP_DEVICE_OUT_OF_SPACE] = &_error_OB_BACKUP_DEVICE_OUT_OF_SPACE;
    _errors[-OB_BACKUP_PWRITE_OFFSET_NOT_MATCH] = &_error_OB_BACKUP_PWRITE_OFFSET_NOT_MATCH;
    _errors[-OB_BACKUP_PWRITE_CONTENT_NOT_MATCH] = &_error_OB_BACKUP_PWRITE_CONTENT_NOT_MATCH;
    _errors[-OB_BACKUP_MAJOR_NOT_COVER_MINOR] = &_error_OB_BACKUP_MAJOR_NOT_COVER_MINOR;
    _errors[-OB_BACKUP_ADVANCE_CHECKPOINT_TIMEOUT] = &_error_OB_BACKUP_ADVANCE_CHECKPOINT_TIMEOUT;
    _errors[-OB_CLOG_RECYCLE_BEFORE_ARCHIVE] = &_error_OB_CLOG_RECYCLE_BEFORE_ARCHIVE;
    _errors[-OB_SOURCE_TENANT_STATE_NOT_MATCH] = &_error_OB_SOURCE_TENANT_STATE_NOT_MATCH;
    _errors[-OB_SOURCE_LS_STATE_NOT_MATCH] = &_error_OB_SOURCE_LS_STATE_NOT_MATCH;
    _errors[-OB_ESI_SESSION_NOT_EXIST] = &_error_OB_ESI_SESSION_NOT_EXIST;
    _errors[-OB_ALREADY_IN_ARCHIVE_MODE] = &_error_OB_ALREADY_IN_ARCHIVE_MODE;
    _errors[-OB_ALREADY_IN_NOARCHIVE_MODE] = &_error_OB_ALREADY_IN_NOARCHIVE_MODE;
    _errors[-OB_RESTORE_LOG_TO_END] = &_error_OB_RESTORE_LOG_TO_END;
    _errors[-OB_LS_RESTORE_FAILED] = &_error_OB_LS_RESTORE_FAILED;
    _errors[-OB_NO_TABLET_NEED_BACKUP] = &_error_OB_NO_TABLET_NEED_BACKUP;
    _errors[-OB_ERR_RESTORE_STANDBY_VERSION_LAG] = &_error_OB_ERR_RESTORE_STANDBY_VERSION_LAG;
    _errors[-OB_ERR_RESTORE_PRIMARY_TENANT_DROPPED] = &_error_OB_ERR_RESTORE_PRIMARY_TENANT_DROPPED;
    _errors[-OB_CLOUD_OBJECT_NOT_APPENDABLE] = &_error_OB_CLOUD_OBJECT_NOT_APPENDABLE;
    _errors[-OB_RESTORE_TENANT_FAILED] = &_error_OB_RESTORE_TENANT_FAILED;
    _errors[-OB_NO_SUCH_FILE_OR_DIRECTORY] = &_error_OB_NO_SUCH_FILE_OR_DIRECTORY;
    _errors[-OB_FILE_OR_DIRECTORY_EXIST] = &_error_OB_FILE_OR_DIRECTORY_EXIST;
    _errors[-OB_FILE_OR_DIRECTORY_PERMISSION_DENIED] = &_error_OB_FILE_OR_DIRECTORY_PERMISSION_DENIED;
    _errors[-OB_TOO_MANY_OPEN_FILES] = &_error_OB_TOO_MANY_OPEN_FILES;
    _errors[-OB_DIRECT_LOAD_COMMIT_ERROR] = &_error_OB_DIRECT_LOAD_COMMIT_ERROR;
    _errors[-OB_S3_ERROR] = &_error_OB_S3_ERROR;
    _errors[-OB_TENANT_SNAPSHOT_NOT_EXIST] = &_error_OB_TENANT_SNAPSHOT_NOT_EXIST;
    _errors[-OB_TENANT_SNAPSHOT_EXIST] = &_error_OB_TENANT_SNAPSHOT_EXIST;
    _errors[-OB_TENANT_SNAPSHOT_TIMEOUT] = &_error_OB_TENANT_SNAPSHOT_TIMEOUT;
    _errors[-OB_CLONE_TENANT_TIMEOUT] = &_error_OB_CLONE_TENANT_TIMEOUT;
    _errors[-OB_ERR_CLONE_TENANT] = &_error_OB_ERR_CLONE_TENANT;
    _errors[-OB_ERR_TENANT_SNAPSHOT] = &_error_OB_ERR_TENANT_SNAPSHOT;
    _errors[-OB_TENANT_SNAPSHOT_LOCK_CONFLICT] = &_error_OB_TENANT_SNAPSHOT_LOCK_CONFLICT;
    _errors[-OB_ERR_RESIZE_FILE_TO_SMALLER] = &_error_OB_ERR_RESIZE_FILE_TO_SMALLER;
    _errors[-OB_MARK_BLOCK_INFO_TIMEOUT] = &_error_OB_MARK_BLOCK_INFO_TIMEOUT;
    _errors[-OB_NOT_READY_TO_EXTEND_FILE] = &_error_OB_NOT_READY_TO_EXTEND_FILE;
    _errors[-OB_ERR_DUPLICATE_HAVING_CLAUSE_IN_TABLE_EXPRESSION] = &_error_OB_ERR_DUPLICATE_HAVING_CLAUSE_IN_TABLE_EXPRESSION;
    _errors[-OB_ERR_INOUT_PARAM_PLACEMENT_NOT_PROPERLY] = &_error_OB_ERR_INOUT_PARAM_PLACEMENT_NOT_PROPERLY;
    _errors[-OB_ERR_OBJECT_NOT_FOUND] = &_error_OB_ERR_OBJECT_NOT_FOUND;
    _errors[-OB_ERR_INVALID_INPUT_VALUE] = &_error_OB_ERR_INVALID_INPUT_VALUE;
    _errors[-OB_ERR_GOTO_BRANCH_ILLEGAL] = &_error_OB_ERR_GOTO_BRANCH_ILLEGAL;
    _errors[-OB_ERR_ONLY_SCHEMA_LEVEL_ALLOW] = &_error_OB_ERR_ONLY_SCHEMA_LEVEL_ALLOW;
    _errors[-OB_ERR_DECL_MORE_THAN_ONCE] = &_error_OB_ERR_DECL_MORE_THAN_ONCE;
    _errors[-OB_ERR_DUPLICATE_FILED] = &_error_OB_ERR_DUPLICATE_FILED;
    _errors[-OB_ERR_PRAGMA_ILLEGAL] = &_error_OB_ERR_PRAGMA_ILLEGAL;
    _errors[-OB_ERR_EXIT_CONTINUE_ILLEGAL] = &_error_OB_ERR_EXIT_CONTINUE_ILLEGAL;
    _errors[-OB_ERR_LABEL_ILLEGAL] = &_error_OB_ERR_LABEL_ILLEGAL;
    _errors[-OB_ERR_CURSOR_LEFT_ASSIGN] = &_error_OB_ERR_CURSOR_LEFT_ASSIGN;
    _errors[-OB_ERR_INIT_NOTNULL_ILLEGAL] = &_error_OB_ERR_INIT_NOTNULL_ILLEGAL;
    _errors[-OB_ERR_INIT_CONST_ILLEGAL] = &_error_OB_ERR_INIT_CONST_ILLEGAL;
    _errors[-OB_ERR_CURSOR_VAR_IN_PKG] = &_error_OB_ERR_CURSOR_VAR_IN_PKG;
    _errors[-OB_ERR_LIMIT_CLAUSE] = &_error_OB_ERR_LIMIT_CLAUSE;
    _errors[-OB_ERR_EXPRESSION_WRONG_TYPE] = &_error_OB_ERR_EXPRESSION_WRONG_TYPE;
    _errors[-OB_ERR_SPEC_NOT_EXIST] = &_error_OB_ERR_SPEC_NOT_EXIST;
    _errors[-OB_ERR_TYPE_SPEC_NO_ROUTINE] = &_error_OB_ERR_TYPE_SPEC_NO_ROUTINE;
    _errors[-OB_ERR_TYPE_BODY_NO_ROUTINE] = &_error_OB_ERR_TYPE_BODY_NO_ROUTINE;
    _errors[-OB_ERR_BOTH_ORDER_MAP] = &_error_OB_ERR_BOTH_ORDER_MAP;
    _errors[-OB_ERR_NO_ORDER_MAP] = &_error_OB_ERR_NO_ORDER_MAP;
    _errors[-OB_ERR_ORDER_MAP_NEED_BE_FUNC] = &_error_OB_ERR_ORDER_MAP_NEED_BE_FUNC;
    _errors[-OB_ERR_IDENTIFIER_TOO_LONG] = &_error_OB_ERR_IDENTIFIER_TOO_LONG;
    _errors[-OB_ERR_INVOKE_STATIC_BY_INSTANCE] = &_error_OB_ERR_INVOKE_STATIC_BY_INSTANCE;
    _errors[-OB_ERR_CONS_NAME_ILLEGAL] = &_error_OB_ERR_CONS_NAME_ILLEGAL;
    _errors[-OB_ERR_ATTR_FUNC_CONFLICT] = &_error_OB_ERR_ATTR_FUNC_CONFLICT;
    _errors[-OB_ERR_SELF_PARAM_NOT_OUT] = &_error_OB_ERR_SELF_PARAM_NOT_OUT;
    _errors[-OB_ERR_MAP_RET_SCALAR_TYPE] = &_error_OB_ERR_MAP_RET_SCALAR_TYPE;
    _errors[-OB_ERR_MAP_MORE_THAN_SELF_PARAM] = &_error_OB_ERR_MAP_MORE_THAN_SELF_PARAM;
    _errors[-OB_ERR_ORDER_RET_INT_TYPE] = &_error_OB_ERR_ORDER_RET_INT_TYPE;
    _errors[-OB_ERR_ORDER_PARAM_TYPE] = &_error_OB_ERR_ORDER_PARAM_TYPE;
    _errors[-OB_ERR_OBJ_CMP_SQL] = &_error_OB_ERR_OBJ_CMP_SQL;
    _errors[-OB_ERR_MAP_ORDER_PRAGMA] = &_error_OB_ERR_MAP_ORDER_PRAGMA;
    _errors[-OB_ERR_ORDER_PARAM_MUST_IN_MODE] = &_error_OB_ERR_ORDER_PARAM_MUST_IN_MODE;
    _errors[-OB_ERR_ORDER_PARAM_NOT_TWO] = &_error_OB_ERR_ORDER_PARAM_NOT_TWO;
    _errors[-OB_ERR_TYPE_REF_REFCURSIVE] = &_error_OB_ERR_TYPE_REF_REFCURSIVE;
    _errors[-OB_ERR_DIRECTIVE_ERROR] = &_error_OB_ERR_DIRECTIVE_ERROR;
    _errors[-OB_ERR_CONS_HAS_RET_NODE] = &_error_OB_ERR_CONS_HAS_RET_NODE;
    _errors[-OB_ERR_CALL_WRONG_ARG] = &_error_OB_ERR_CALL_WRONG_ARG;
    _errors[-OB_ERR_FUNC_NAME_SAME_WITH_CONS] = &_error_OB_ERR_FUNC_NAME_SAME_WITH_CONS;
    _errors[-OB_ERR_FUNC_DUP] = &_error_OB_ERR_FUNC_DUP;
    _errors[-OB_ERR_WHEN_CLAUSE] = &_error_OB_ERR_WHEN_CLAUSE;
    _errors[-OB_ERR_NEW_OLD_REFERENCES] = &_error_OB_ERR_NEW_OLD_REFERENCES;
    _errors[-OB_ERR_TYPE_DECL_ILLEGAL] = &_error_OB_ERR_TYPE_DECL_ILLEGAL;
    _errors[-OB_ERR_OBJECT_INVALID] = &_error_OB_ERR_OBJECT_INVALID;
    _errors[-OB_ERR_XML_PARSE] = &_error_OB_ERR_XML_PARSE;
    _errors[-OB_ERR_EXP_NOT_ASSIGNABLE] = &_error_OB_ERR_EXP_NOT_ASSIGNABLE;
    _errors[-OB_ERR_CURSOR_CONTAIN_BOTH_REGULAR_AND_ARRAY] = &_error_OB_ERR_CURSOR_CONTAIN_BOTH_REGULAR_AND_ARRAY;
    _errors[-OB_ERR_STATIC_BOOL_EXPR] = &_error_OB_ERR_STATIC_BOOL_EXPR;
    _errors[-OB_ERR_DIRECTIVE_CONTEXT] = &_error_OB_ERR_DIRECTIVE_CONTEXT;
    _errors[-OB_UTL_FILE_INVALID_PATH] = &_error_OB_UTL_FILE_INVALID_PATH;
    _errors[-OB_UTL_FILE_INVALID_MODE] = &_error_OB_UTL_FILE_INVALID_MODE;
    _errors[-OB_UTL_FILE_INVALID_FILEHANDLE] = &_error_OB_UTL_FILE_INVALID_FILEHANDLE;
    _errors[-OB_UTL_FILE_INVALID_OPERATION] = &_error_OB_UTL_FILE_INVALID_OPERATION;
    _errors[-OB_UTL_FILE_READ_ERROR] = &_error_OB_UTL_FILE_READ_ERROR;
    _errors[-OB_UTL_FILE_WRITE_ERROR] = &_error_OB_UTL_FILE_WRITE_ERROR;
    _errors[-OB_UTL_FILE_INTERNAL_ERROR] = &_error_OB_UTL_FILE_INTERNAL_ERROR;
    _errors[-OB_UTL_FILE_CHARSETMISMATCH] = &_error_OB_UTL_FILE_CHARSETMISMATCH;
    _errors[-OB_UTL_FILE_INVALID_MAXLINESIZE] = &_error_OB_UTL_FILE_INVALID_MAXLINESIZE;
    _errors[-OB_UTL_FILE_INVALID_FILENAME] = &_error_OB_UTL_FILE_INVALID_FILENAME;
    _errors[-OB_UTL_FILE_ACCESS_DENIED] = &_error_OB_UTL_FILE_ACCESS_DENIED;
    _errors[-OB_UTL_FILE_INVALID_OFFSET] = &_error_OB_UTL_FILE_INVALID_OFFSET;
    _errors[-OB_UTL_FILE_DELETE_FAILED] = &_error_OB_UTL_FILE_DELETE_FAILED;
    _errors[-OB_UTL_FILE_RENAME_FAILED] = &_error_OB_UTL_FILE_RENAME_FAILED;
    _errors[-OB_ERR_BIND_TYPE_NOT_MATCH_COLUMN] = &_error_OB_ERR_BIND_TYPE_NOT_MATCH_COLUMN;
    _errors[-OB_ERR_NESTED_TABLE_IN_TRI] = &_error_OB_ERR_NESTED_TABLE_IN_TRI;
    _errors[-OB_ERR_COL_LIST_IN_TRI] = &_error_OB_ERR_COL_LIST_IN_TRI;
    _errors[-OB_ERR_WHEN_CLAUSE_IN_TRI] = &_error_OB_ERR_WHEN_CLAUSE_IN_TRI;
    _errors[-OB_ERR_INSTEAD_TRI_ON_TABLE] = &_error_OB_ERR_INSTEAD_TRI_ON_TABLE;
    _errors[-OB_ERR_RETURNING_CLAUSE] = &_error_OB_ERR_RETURNING_CLAUSE;
    _errors[-OB_ERR_XSLT_PARSE] = &_error_OB_ERR_XSLT_PARSE;
    _errors[-OB_ERR_NO_RETURN_IN_FUNCTION] = &_error_OB_ERR_NO_RETURN_IN_FUNCTION;
    _errors[-OB_ERR_STMT_NOT_ALLOW_IN_MYSQL_FUNC_TRIGGER] = &_error_OB_ERR_STMT_NOT_ALLOW_IN_MYSQL_FUNC_TRIGGER;
    _errors[-OB_ERR_TOO_LONG_STRING_TYPE] = &_error_OB_ERR_TOO_LONG_STRING_TYPE;
    _errors[-OB_ERR_WIDTH_OUT_OF_RANGE] = &_error_OB_ERR_WIDTH_OUT_OF_RANGE;
    _errors[-OB_ERR_REDEFINE_LABEL] = &_error_OB_ERR_REDEFINE_LABEL;
    _errors[-OB_ERR_STMT_NOT_ALLOW_IN_MYSQL_PROCEDRUE] = &_error_OB_ERR_STMT_NOT_ALLOW_IN_MYSQL_PROCEDRUE;
    _errors[-OB_ERR_TRIGGER_NOT_SUPPORT] = &_error_OB_ERR_TRIGGER_NOT_SUPPORT;
    _errors[-OB_ERR_TRIGGER_IN_WRONG_SCHEMA] = &_error_OB_ERR_TRIGGER_IN_WRONG_SCHEMA;
    _errors[-OB_ERR_UNKNOWN_EXCEPTION] = &_error_OB_ERR_UNKNOWN_EXCEPTION;
    _errors[-OB_ERR_TRIGGER_CANT_CHANGE_ROW] = &_error_OB_ERR_TRIGGER_CANT_CHANGE_ROW;
    _errors[-OB_ERR_ITEM_NOT_IN_BODY] = &_error_OB_ERR_ITEM_NOT_IN_BODY;
    _errors[-OB_ERR_WRONG_ROWTYPE] = &_error_OB_ERR_WRONG_ROWTYPE;
    _errors[-OB_ERR_ROUTINE_NOT_DEFINE] = &_error_OB_ERR_ROUTINE_NOT_DEFINE;
    _errors[-OB_ERR_DUP_NAME_IN_CURSOR] = &_error_OB_ERR_DUP_NAME_IN_CURSOR;
    _errors[-OB_ERR_LOCAL_COLL_IN_SQL] = &_error_OB_ERR_LOCAL_COLL_IN_SQL;
    _errors[-OB_ERR_TYPE_MISMATCH_IN_FETCH] = &_error_OB_ERR_TYPE_MISMATCH_IN_FETCH;
    _errors[-OB_ERR_OTHERS_MUST_LAST] = &_error_OB_ERR_OTHERS_MUST_LAST;
    _errors[-OB_ERR_RAISE_NOT_IN_HANDLER] = &_error_OB_ERR_RAISE_NOT_IN_HANDLER;
    _errors[-OB_ERR_INVALID_CURSOR_RETURN_TYPE] = &_error_OB_ERR_INVALID_CURSOR_RETURN_TYPE;
    _errors[-OB_ERR_IN_CURSOR_OPEND] = &_error_OB_ERR_IN_CURSOR_OPEND;
    _errors[-OB_ERR_CURSOR_NO_RETURN_TYPE] = &_error_OB_ERR_CURSOR_NO_RETURN_TYPE;
    _errors[-OB_ERR_NO_CHOICES] = &_error_OB_ERR_NO_CHOICES;
    _errors[-OB_ERR_TYPE_DECL_MALFORMED] = &_error_OB_ERR_TYPE_DECL_MALFORMED;
    _errors[-OB_ERR_IN_FORMAL_NOT_DENOTABLE] = &_error_OB_ERR_IN_FORMAL_NOT_DENOTABLE;
    _errors[-OB_ERR_OUT_PARAM_HAS_DEFAULT] = &_error_OB_ERR_OUT_PARAM_HAS_DEFAULT;
    _errors[-OB_ERR_ONLY_FUNC_CAN_PIPELINED] = &_error_OB_ERR_ONLY_FUNC_CAN_PIPELINED;
    _errors[-OB_ERR_PIPE_RETURN_NOT_COLL] = &_error_OB_ERR_PIPE_RETURN_NOT_COLL;
    _errors[-OB_ERR_MISMATCH_SUBPROGRAM] = &_error_OB_ERR_MISMATCH_SUBPROGRAM;
    _errors[-OB_ERR_PARAM_IN_PACKAGE_SPEC] = &_error_OB_ERR_PARAM_IN_PACKAGE_SPEC;
    _errors[-OB_ERR_NUMERIC_LITERAL_REQUIRED] = &_error_OB_ERR_NUMERIC_LITERAL_REQUIRED;
    _errors[-OB_ERR_NON_INT_LITERAL] = &_error_OB_ERR_NON_INT_LITERAL;
    _errors[-OB_ERR_IMPROPER_CONSTRAINT_FORM] = &_error_OB_ERR_IMPROPER_CONSTRAINT_FORM;
    _errors[-OB_ERR_TYPE_CANT_CONSTRAINED] = &_error_OB_ERR_TYPE_CANT_CONSTRAINED;
    _errors[-OB_ERR_ANY_CS_NOT_ALLOWED] = &_error_OB_ERR_ANY_CS_NOT_ALLOWED;
    _errors[-OB_ERR_SCHEMA_TYPE_ILLEGAL] = &_error_OB_ERR_SCHEMA_TYPE_ILLEGAL;
    _errors[-OB_ERR_UNSUPPORTED_TABLE_INDEX_TYPE] = &_error_OB_ERR_UNSUPPORTED_TABLE_INDEX_TYPE;
    _errors[-OB_ERR_ARRAY_MUST_HAVE_POSITIVE_LIMIT] = &_error_OB_ERR_ARRAY_MUST_HAVE_POSITIVE_LIMIT;
    _errors[-OB_ERR_FORALL_ITER_NOT_ALLOWED] = &_error_OB_ERR_FORALL_ITER_NOT_ALLOWED;
    _errors[-OB_ERR_BULK_IN_BIND] = &_error_OB_ERR_BULK_IN_BIND;
    _errors[-OB_ERR_FORALL_BULK_TOGETHER] = &_error_OB_ERR_FORALL_BULK_TOGETHER;
    _errors[-OB_ERR_FORALL_DML_WITHOUT_BULK] = &_error_OB_ERR_FORALL_DML_WITHOUT_BULK;
    _errors[-OB_ERR_SHOULD_COLLECTION_TYPE] = &_error_OB_ERR_SHOULD_COLLECTION_TYPE;
    _errors[-OB_ERR_ASSOC_ELEM_TYPE] = &_error_OB_ERR_ASSOC_ELEM_TYPE;
    _errors[-OB_ERR_INTO_CLAUSE_EXPECTED] = &_error_OB_ERR_INTO_CLAUSE_EXPECTED;
    _errors[-OB_ERR_SUBPROGRAM_VIOLATES_PRAGMA] = &_error_OB_ERR_SUBPROGRAM_VIOLATES_PRAGMA;
    _errors[-OB_ERR_EXPR_SQL_TYPE] = &_error_OB_ERR_EXPR_SQL_TYPE;
    _errors[-OB_ERR_PRAGMA_DECL_TWICE] = &_error_OB_ERR_PRAGMA_DECL_TWICE;
    _errors[-OB_ERR_PRAGMA_FOLLOW_DECL] = &_error_OB_ERR_PRAGMA_FOLLOW_DECL;
    _errors[-OB_ERR_PIPE_STMT_IN_NON_PIPELINED_FUNC] = &_error_OB_ERR_PIPE_STMT_IN_NON_PIPELINED_FUNC;
    _errors[-OB_ERR_IMPL_RESTRICTION] = &_error_OB_ERR_IMPL_RESTRICTION;
    _errors[-OB_ERR_INSUFFICIENT_PRIVILEGE] = &_error_OB_ERR_INSUFFICIENT_PRIVILEGE;
    _errors[-OB_ERR_ILLEGAL_OPTION] = &_error_OB_ERR_ILLEGAL_OPTION;
    _errors[-OB_ERR_NO_FUNCTION_EXIST] = &_error_OB_ERR_NO_FUNCTION_EXIST;
    _errors[-OB_ERR_OUT_OF_SCOPE] = &_error_OB_ERR_OUT_OF_SCOPE;
    _errors[-OB_ERR_ILLEGAL_ERROR_NUM] = &_error_OB_ERR_ILLEGAL_ERROR_NUM;
    _errors[-OB_ERR_DEFAULT_NOT_MATCH] = &_error_OB_ERR_DEFAULT_NOT_MATCH;
    _errors[-OB_ERR_TABLE_SINGLE_INDEX] = &_error_OB_ERR_TABLE_SINGLE_INDEX;
    _errors[-OB_ERR_PRAGMA_DECL] = &_error_OB_ERR_PRAGMA_DECL;
    _errors[-OB_ERR_INCORRECT_ARGUMENTS] = &_error_OB_ERR_INCORRECT_ARGUMENTS;
    _errors[-OB_ERR_RETURN_VALUE_REQUIRED] = &_error_OB_ERR_RETURN_VALUE_REQUIRED;
    _errors[-OB_ERR_RETURN_EXPR_ILLEGAL] = &_error_OB_ERR_RETURN_EXPR_ILLEGAL;
    _errors[-OB_ERR_LIMIT_ILLEGAL] = &_error_OB_ERR_LIMIT_ILLEGAL;
    _errors[-OB_ERR_INTO_EXPR_ILLEGAL] = &_error_OB_ERR_INTO_EXPR_ILLEGAL;
    _errors[-OB_ERR_BULK_SQL_RESTRICTION] = &_error_OB_ERR_BULK_SQL_RESTRICTION;
    _errors[-OB_ERR_MIX_SINGLE_MULTI] = &_error_OB_ERR_MIX_SINGLE_MULTI;
    _errors[-OB_ERR_TRIGGER_NO_SUCH_ROW] = &_error_OB_ERR_TRIGGER_NO_SUCH_ROW;
    _errors[-OB_ERR_SET_USAGE] = &_error_OB_ERR_SET_USAGE;
    _errors[-OB_ERR_MODIFIER_CONFLICTS] = &_error_OB_ERR_MODIFIER_CONFLICTS;
    _errors[-OB_ERR_DUPLICATE_MODIFIER] = &_error_OB_ERR_DUPLICATE_MODIFIER;
    _errors[-OB_ERR_STR_LITERAL_TOO_LONG] = &_error_OB_ERR_STR_LITERAL_TOO_LONG;
    _errors[-OB_ERR_SELF_PARAM_NOT_INOUT] = &_error_OB_ERR_SELF_PARAM_NOT_INOUT;
    _errors[-OB_ERR_CONSTRUCT_MUST_RETURN_SELF] = &_error_OB_ERR_CONSTRUCT_MUST_RETURN_SELF;
    _errors[-OB_ERR_FIRST_PARAM_MUST_NOT_NULL] = &_error_OB_ERR_FIRST_PARAM_MUST_NOT_NULL;
    _errors[-OB_ERR_COALESCE_AT_LEAST_ONE_NOT_NULL] = &_error_OB_ERR_COALESCE_AT_LEAST_ONE_NOT_NULL;
    _errors[-OB_ERR_STATIC_METHOD_HAS_SELF] = &_error_OB_ERR_STATIC_METHOD_HAS_SELF;
    _errors[-OB_ERR_NO_ATTR_FOUND] = &_error_OB_ERR_NO_ATTR_FOUND;
    _errors[-OB_ERR_ILLEGAL_TYPE_FOR_OBJECT] = &_error_OB_ERR_ILLEGAL_TYPE_FOR_OBJECT;
    _errors[-OB_ERR_UNSUPPORTED_TYPE] = &_error_OB_ERR_UNSUPPORTED_TYPE;
    _errors[-OB_ERR_POSITIONAL_FOLLOW_NAME] = &_error_OB_ERR_POSITIONAL_FOLLOW_NAME;
    _errors[-OB_ERR_NEED_A_LABEL] = &_error_OB_ERR_NEED_A_LABEL;
    _errors[-OB_ERR_REFER_SAME_PACKAGE] = &_error_OB_ERR_REFER_SAME_PACKAGE;
    _errors[-OB_ERR_PL_COMMON] = &_error_OB_ERR_PL_COMMON;
    _errors[-OB_ERR_IDENT_EMPTY] = &_error_OB_ERR_IDENT_EMPTY;
    _errors[-OB_ERR_PRAGMA_STR_UNSUPPORT] = &_error_OB_ERR_PRAGMA_STR_UNSUPPORT;
    _errors[-OB_ERR_END_LABEL_NOT_MATCH] = &_error_OB_ERR_END_LABEL_NOT_MATCH;
    _errors[-OB_ERR_WRONG_FETCH_INTO_NUM] = &_error_OB_ERR_WRONG_FETCH_INTO_NUM;
    _errors[-OB_ERR_PRAGMA_FIRST_ARG] = &_error_OB_ERR_PRAGMA_FIRST_ARG;
    _errors[-OB_ERR_TRIGGER_CANT_CHANGE_OLD_ROW] = &_error_OB_ERR_TRIGGER_CANT_CHANGE_OLD_ROW;
    _errors[-OB_ERR_TRIGGER_CANT_CRT_ON_RO_VIEW] = &_error_OB_ERR_TRIGGER_CANT_CRT_ON_RO_VIEW;
    _errors[-OB_ERR_TRIGGER_INVALID_REF_NAME] = &_error_OB_ERR_TRIGGER_INVALID_REF_NAME;
    _errors[-OB_ERR_EXP_NOT_INTO_TARGET] = &_error_OB_ERR_EXP_NOT_INTO_TARGET;
    _errors[-OB_ERR_CASE_NULL] = &_error_OB_ERR_CASE_NULL;
    _errors[-OB_ERR_INVALID_GOTO] = &_error_OB_ERR_INVALID_GOTO;
    _errors[-OB_ERR_PRIVATE_UDF_USE_IN_SQL] = &_error_OB_ERR_PRIVATE_UDF_USE_IN_SQL;
    _errors[-OB_ERR_FIELD_NOT_DENOTABLE] = &_error_OB_ERR_FIELD_NOT_DENOTABLE;
    _errors[-OB_NUMERIC_PRECISION_NOT_INTEGER] = &_error_OB_NUMERIC_PRECISION_NOT_INTEGER;
    _errors[-OB_ERR_REQUIRE_INTEGER] = &_error_OB_ERR_REQUIRE_INTEGER;
    _errors[-OB_ERR_INDEX_TABLE_OF_CURSOR] = &_error_OB_ERR_INDEX_TABLE_OF_CURSOR;
    _errors[-OB_NULL_CHECK_ERROR] = &_error_OB_NULL_CHECK_ERROR;
    _errors[-OB_ERR_EX_NAME_ARG] = &_error_OB_ERR_EX_NAME_ARG;
    _errors[-OB_ERR_EX_ARG_NUM] = &_error_OB_ERR_EX_ARG_NUM;
    _errors[-OB_ERR_EX_SECOND_ARG] = &_error_OB_ERR_EX_SECOND_ARG;
    _errors[-OB_OBEN_CURSOR_NUMBER_IS_ZERO] = &_error_OB_OBEN_CURSOR_NUMBER_IS_ZERO;
    _errors[-OB_NO_STMT_PARSE] = &_error_OB_NO_STMT_PARSE;
    _errors[-OB_ARRAY_CNT_IS_ILLEGAL] = &_error_OB_ARRAY_CNT_IS_ILLEGAL;
    _errors[-OB_ERR_WRONG_SCHEMA_REF] = &_error_OB_ERR_WRONG_SCHEMA_REF;
    _errors[-OB_ERR_COMPONENT_UNDECLARED] = &_error_OB_ERR_COMPONENT_UNDECLARED;
    _errors[-OB_ERR_FUNC_ONLY_IN_SQL] = &_error_OB_ERR_FUNC_ONLY_IN_SQL;
    _errors[-OB_ERR_UNDEFINED] = &_error_OB_ERR_UNDEFINED;
    _errors[-OB_ERR_SUBTYPE_NOTNULL_MISMATCH] = &_error_OB_ERR_SUBTYPE_NOTNULL_MISMATCH;
    _errors[-OB_ERR_BIND_VAR_NOT_EXIST] = &_error_OB_ERR_BIND_VAR_NOT_EXIST;
    _errors[-OB_ERR_CURSOR_IN_OPEN_DYNAMIC_SQL] = &_error_OB_ERR_CURSOR_IN_OPEN_DYNAMIC_SQL;
    _errors[-OB_ERR_INVALID_INPUT_ARGUMENT] = &_error_OB_ERR_INVALID_INPUT_ARGUMENT;
    _errors[-OB_ERR_CLIENT_IDENTIFIER_TOO_LONG] = &_error_OB_ERR_CLIENT_IDENTIFIER_TOO_LONG;
    _errors[-OB_ERR_INVALID_NAMESPACE_VALUE] = &_error_OB_ERR_INVALID_NAMESPACE_VALUE;
    _errors[-OB_ERR_INVALID_NAMESPACE_BEG] = &_error_OB_ERR_INVALID_NAMESPACE_BEG;
    _errors[-OB_ERR_SESSION_CONTEXT_EXCEEDED] = &_error_OB_ERR_SESSION_CONTEXT_EXCEEDED;
    _errors[-OB_ERR_NOT_CURSOR_NAME_IN_CURRENT_OF] = &_error_OB_ERR_NOT_CURSOR_NAME_IN_CURRENT_OF;
    _errors[-OB_ERR_NOT_FOR_UPDATE_CURSOR_IN_CURRENT_OF] = &_error_OB_ERR_NOT_FOR_UPDATE_CURSOR_IN_CURRENT_OF;
    _errors[-OB_ERR_DUP_SIGNAL_SET] = &_error_OB_ERR_DUP_SIGNAL_SET;
    _errors[-OB_ERR_SIGNAL_NOT_FOUND] = &_error_OB_ERR_SIGNAL_NOT_FOUND;
    _errors[-OB_ERR_INVALID_CONDITION_NUMBER] = &_error_OB_ERR_INVALID_CONDITION_NUMBER;
    _errors[-OB_ERR_RECURSIVE_SQL_LEVELS_EXCEEDED] = &_error_OB_ERR_RECURSIVE_SQL_LEVELS_EXCEEDED;
    _errors[-OB_ERR_INVALID_SECTION] = &_error_OB_ERR_INVALID_SECTION;
    _errors[-OB_ERR_DUPLICATE_TRIGGER_SECTION] = &_error_OB_ERR_DUPLICATE_TRIGGER_SECTION;
    _errors[-OB_ERR_PARSE_PLSQL] = &_error_OB_ERR_PARSE_PLSQL;
    _errors[-OB_ERR_SIGNAL_WARN] = &_error_OB_ERR_SIGNAL_WARN;
    _errors[-OB_ERR_RESIGNAL_WITHOUT_ACTIVE_HANDLER] = &_error_OB_ERR_RESIGNAL_WITHOUT_ACTIVE_HANDLER;
    _errors[-OB_ERR_CANNOT_UPDATE_VIRTUAL_COL_IN_TRG] = &_error_OB_ERR_CANNOT_UPDATE_VIRTUAL_COL_IN_TRG;
    _errors[-OB_ERR_TRG_ORDER] = &_error_OB_ERR_TRG_ORDER;
    _errors[-OB_ERR_REF_ANOTHER_TABLE_IN_TRG] = &_error_OB_ERR_REF_ANOTHER_TABLE_IN_TRG;
    _errors[-OB_ERR_REF_TYPE_IN_TRG] = &_error_OB_ERR_REF_TYPE_IN_TRG;
    _errors[-OB_ERR_REF_CYCLIC_IN_TRG] = &_error_OB_ERR_REF_CYCLIC_IN_TRG;
    _errors[-OB_ERR_CANNOT_SPECIFY_PRECEDES_IN_TRG] = &_error_OB_ERR_CANNOT_SPECIFY_PRECEDES_IN_TRG;
    _errors[-OB_ERR_CANNOT_PERFORM_DML_INSIDE_QUERY] = &_error_OB_ERR_CANNOT_PERFORM_DML_INSIDE_QUERY;
    _errors[-OB_ERR_CANNOT_PERFORM_DDL_COMMIT_OR_ROLLBACK_INSIDE_QUERY_OR_DML_TIPS] = &_error_OB_ERR_CANNOT_PERFORM_DDL_COMMIT_OR_ROLLBACK_INSIDE_QUERY_OR_DML_TIPS;
    _errors[-OB_ERR_STATEMENT_STRING_IN_EXECUTE_IMMEDIATE_IS_NULL_OR_ZERO_LENGTH] = &_error_OB_ERR_STATEMENT_STRING_IN_EXECUTE_IMMEDIATE_IS_NULL_OR_ZERO_LENGTH;
    _errors[-OB_ERR_MISSING_INTO_KEYWORD] = &_error_OB_ERR_MISSING_INTO_KEYWORD;
    _errors[-OB_ERR_CLAUSE_RETURN_ILLEGAL] = &_error_OB_ERR_CLAUSE_RETURN_ILLEGAL;
    _errors[-OB_ERR_NAME_HAS_TOO_MANY_PARTS] = &_error_OB_ERR_NAME_HAS_TOO_MANY_PARTS;
    _errors[-OB_ERR_LOB_SPAN_TRANSACTION] = &_error_OB_ERR_LOB_SPAN_TRANSACTION;
    _errors[-OB_ERR_INVALID_MULTISET] = &_error_OB_ERR_INVALID_MULTISET;
    _errors[-OB_ERR_INVALID_CAST_UDT] = &_error_OB_ERR_INVALID_CAST_UDT;
    _errors[-OB_ERR_POLICY_EXIST] = &_error_OB_ERR_POLICY_EXIST;
    _errors[-OB_ERR_POLICY_NOT_EXIST] = &_error_OB_ERR_POLICY_NOT_EXIST;
    _errors[-OB_ERR_ADD_POLICY_TO_SYS_OBJECT] = &_error_OB_ERR_ADD_POLICY_TO_SYS_OBJECT;
    _errors[-OB_ERR_INVALID_INPUT_STRING] = &_error_OB_ERR_INVALID_INPUT_STRING;
    _errors[-OB_ERR_SEC_COLUMN_ON_VIEW] = &_error_OB_ERR_SEC_COLUMN_ON_VIEW;
    _errors[-OB_ERR_INVALID_INPUT_FOR_ARGUMENT] = &_error_OB_ERR_INVALID_INPUT_FOR_ARGUMENT;
    _errors[-OB_ERR_POLICY_DISABLED] = &_error_OB_ERR_POLICY_DISABLED;
    _errors[-OB_ERR_CIRCULAR_POLICIES] = &_error_OB_ERR_CIRCULAR_POLICIES;
    _errors[-OB_ERR_TOO_MANY_POLICIES] = &_error_OB_ERR_TOO_MANY_POLICIES;
    _errors[-OB_ERR_POLICY_FUNCTION] = &_error_OB_ERR_POLICY_FUNCTION;
    _errors[-OB_ERR_NO_PRIV_EVAL_PREDICATE] = &_error_OB_ERR_NO_PRIV_EVAL_PREDICATE;
    _errors[-OB_ERR_EXECUTE_POLICY_FUNCTION] = &_error_OB_ERR_EXECUTE_POLICY_FUNCTION;
    _errors[-OB_ERR_POLICY_PREDICATE] = &_error_OB_ERR_POLICY_PREDICATE;
    _errors[-OB_ERR_NO_PRIV_DIRECT_PATH_ACCESS] = &_error_OB_ERR_NO_PRIV_DIRECT_PATH_ACCESS;
    _errors[-OB_ERR_INTEGRITY_CONSTRAINT_VIOLATED] = &_error_OB_ERR_INTEGRITY_CONSTRAINT_VIOLATED;
    _errors[-OB_ERR_POLICY_GROUP_EXIST] = &_error_OB_ERR_POLICY_GROUP_EXIST;
    _errors[-OB_ERR_POLICY_GROUP_NOT_EXIST] = &_error_OB_ERR_POLICY_GROUP_NOT_EXIST;
    _errors[-OB_ERR_DRIVING_CONTEXT_EXIST] = &_error_OB_ERR_DRIVING_CONTEXT_EXIST;
    _errors[-OB_ERR_DRIVING_CONTEXT_NOT_EXIST] = &_error_OB_ERR_DRIVING_CONTEXT_NOT_EXIST;
    _errors[-OB_ERR_UPDATE_DEFAULT_GROUP] = &_error_OB_ERR_UPDATE_DEFAULT_GROUP;
    _errors[-OB_ERR_CONTEXT_CONTAIN_INVALID_GROUP] = &_error_OB_ERR_CONTEXT_CONTAIN_INVALID_GROUP;
    _errors[-OB_ERR_INVALID_SEC_COLUMN_TYPE] = &_error_OB_ERR_INVALID_SEC_COLUMN_TYPE;
    _errors[-OB_ERR_UNPROTECTED_VIRTUAL_COLUMN] = &_error_OB_ERR_UNPROTECTED_VIRTUAL_COLUMN;
    _errors[-OB_ERR_ATTRIBUTE_ASSOCIATION] = &_error_OB_ERR_ATTRIBUTE_ASSOCIATION;
    _errors[-OB_ERR_MERGE_INTO_WITH_POLICY] = &_error_OB_ERR_MERGE_INTO_WITH_POLICY;
    _errors[-OB_ERR_SP_NO_DROP_SP] = &_error_OB_ERR_SP_NO_DROP_SP;
    _errors[-OB_ERR_RECOMPILATION_OBJECT] = &_error_OB_ERR_RECOMPILATION_OBJECT;
    _errors[-OB_ERR_VARIABLE_NOT_IN_SELECT_LIST] = &_error_OB_ERR_VARIABLE_NOT_IN_SELECT_LIST;
    _errors[-OB_ERR_MULTI_RECORD] = &_error_OB_ERR_MULTI_RECORD;
    _errors[-OB_ERR_MALFORMED_PS_PACKET] = &_error_OB_ERR_MALFORMED_PS_PACKET;
    _errors[-OB_ERR_VIEW_SELECT_CONTAIN_QUESTIONMARK] = &_error_OB_ERR_VIEW_SELECT_CONTAIN_QUESTIONMARK;
    _errors[-OB_ERR_OBJECT_NOT_EXIST] = &_error_OB_ERR_OBJECT_NOT_EXIST;
    _errors[-OB_ERR_TABLE_OUT_OF_RANGE] = &_error_OB_ERR_TABLE_OUT_OF_RANGE;
    _errors[-OB_ERR_WRONG_USAGE] = &_error_OB_ERR_WRONG_USAGE;
    _errors[-OB_ERR_FORALL_ON_REMOTE_TABLE] = &_error_OB_ERR_FORALL_ON_REMOTE_TABLE;
    _errors[-OB_ERR_SEQUENCE_NOT_DEFINE] = &_error_OB_ERR_SEQUENCE_NOT_DEFINE;
    _errors[-OB_ERR_DEBUG_ID_NOT_EXIST] = &_error_OB_ERR_DEBUG_ID_NOT_EXIST;
    _errors[-OB_ERR_TABLE_NO_MLOG] = &_error_OB_ERR_TABLE_NO_MLOG;
    _errors[-OB_ERR_MLOG_EXIST] = &_error_OB_ERR_MLOG_EXIST;
    _errors[-OB_ERR_MVIEW_NOT_EXIST] = &_error_OB_ERR_MVIEW_NOT_EXIST;
    _errors[-OB_ERR_MVIEW_EXIST] = &_error_OB_ERR_MVIEW_EXIST;
    _errors[-OB_ERR_MLOG_IS_YOUNGER] = &_error_OB_ERR_MLOG_IS_YOUNGER;
    _errors[-OB_ERR_MVIEW_CAN_NOT_FAST_REFRESH] = &_error_OB_ERR_MVIEW_CAN_NOT_FAST_REFRESH;
    _errors[-OB_ERR_MVIEW_NEVER_REFRESH] = &_error_OB_ERR_MVIEW_NEVER_REFRESH;
    _errors[-OB_ERR_CLIENT_LOCAL_FILES_DISABLED] = &_error_OB_ERR_CLIENT_LOCAL_FILES_DISABLED;
    _errors[-OB_ERR_OUT_PARAM_NOT_BIND_VAR] = &_error_OB_ERR_OUT_PARAM_NOT_BIND_VAR;
    _errors[-OB_ERR_TIME_EARLIER_THAN_SYSDATE] = &_error_OB_ERR_TIME_EARLIER_THAN_SYSDATE;
    _errors[-OB_ERR_NOT_FUNC_NAME] = &_error_OB_ERR_NOT_FUNC_NAME;
    _errors[-OB_ERR_KV_GLOBAL_INDEX_ROUTE] = &_error_OB_ERR_KV_GLOBAL_INDEX_ROUTE;
    _errors[-OB_TTL_NOT_ENABLE] = &_error_OB_TTL_NOT_ENABLE;
    _errors[-OB_TTL_COLUMN_NOT_EXIST] = &_error_OB_TTL_COLUMN_NOT_EXIST;
    _errors[-OB_TTL_COLUMN_TYPE_NOT_SUPPORTED] = &_error_OB_TTL_COLUMN_TYPE_NOT_SUPPORTED;
    _errors[-OB_TTL_CMD_NOT_ALLOWED] = &_error_OB_TTL_CMD_NOT_ALLOWED;
    _errors[-OB_TTL_NO_TASK_RUNNING] = &_error_OB_TTL_NO_TASK_RUNNING;
    _errors[-OB_TTL_TENANT_IS_RESTORE] = &_error_OB_TTL_TENANT_IS_RESTORE;
    _errors[-OB_TTL_INVALID_HBASE_TTL] = &_error_OB_TTL_INVALID_HBASE_TTL;
    _errors[-OB_TTL_INVALID_HBASE_MAXVERSIONS] = &_error_OB_TTL_INVALID_HBASE_MAXVERSIONS;
    _errors[-OB_KV_CREDENTIAL_NOT_MATCH] = &_error_OB_KV_CREDENTIAL_NOT_MATCH;
    _errors[-OB_KV_ROWKEY_COUNT_NOT_MATCH] = &_error_OB_KV_ROWKEY_COUNT_NOT_MATCH;
    _errors[-OB_KV_COLUMN_TYPE_NOT_MATCH] = &_error_OB_KV_COLUMN_TYPE_NOT_MATCH;
    _errors[-OB_KV_COLLATION_MISMATCH] = &_error_OB_KV_COLLATION_MISMATCH;
    _errors[-OB_KV_SCAN_RANGE_MISSING] = &_error_OB_KV_SCAN_RANGE_MISSING;
    _errors[-OB_KV_ODP_TIMEOUT] = &_error_OB_KV_ODP_TIMEOUT;
    _errors[-OB_ERR_VALUES_CLAUSE_NEED_HAVE_COLUMN] = &_error_OB_ERR_VALUES_CLAUSE_NEED_HAVE_COLUMN;
    _errors[-OB_ERR_VALUES_CLAUSE_CANNOT_USE_DEFAULT_VALUES] = &_error_OB_ERR_VALUES_CLAUSE_CANNOT_USE_DEFAULT_VALUES;
    _errors[-OB_WRONG_PARTITION_NAME] = &_error_OB_WRONG_PARTITION_NAME;
    _errors[-OB_ERR_PLUGIN_IS_NOT_LOADED] = &_error_OB_ERR_PLUGIN_IS_NOT_LOADED;
    _errors[-OB_EST_DEVIA_TOO_LARGE] = &_error_OB_EST_DEVIA_TOO_LARGE;
    _errors[-OB_ERR_HAS_TYPE_OR_TABLE_DEPENDENT] = &_error_OB_ERR_HAS_TYPE_OR_TABLE_DEPENDENT;
    _errors[-OB_ERR_REPLACE_TYPE_WITH_TABLE_DEPENDENT] = &_error_OB_ERR_REPLACE_TYPE_WITH_TABLE_DEPENDENT;
    _errors[-OB_ERR_UNKNOWN_AUTHID] = &_error_OB_ERR_UNKNOWN_AUTHID;
    _errors[-OB_ERR_NO_GRANT_DEFINED_FOR_USER] = &_error_OB_ERR_NO_GRANT_DEFINED_FOR_USER;
    _errors[-OB_ERR_USER_ALREADY_EXISTS] = &_error_OB_ERR_USER_ALREADY_EXISTS;
    _errors[-OB_ERR_ARGUMENT_SHOULD_CONSTANT_OR_GROUP_EXPR] = &_error_OB_ERR_ARGUMENT_SHOULD_CONSTANT_OR_GROUP_EXPR;
    _errors[-OB_ERR_QUERY_RANGE_MEMORY_EXHAUSTED] = &_error_OB_ERR_QUERY_RANGE_MEMORY_EXHAUSTED;
    _errors[-OB_CANNOT_USER_IF_EXISTS] = &_error_OB_CANNOT_USER_IF_EXISTS;
    _errors[-OB_ERR_ILLEGAL_USER_VAR] = &_error_OB_ERR_ILLEGAL_USER_VAR;
    _errors[-OB_ERR_FT_COLUMN_NOT_INDEXED] = &_error_OB_ERR_FT_COLUMN_NOT_INDEXED;
    _errors[-OB_SP_RAISE_APPLICATION_ERROR] = &_error_OB_SP_RAISE_APPLICATION_ERROR;
    _errors[-OB_SP_RAISE_APPLICATION_ERROR_NUM] = &_error_OB_SP_RAISE_APPLICATION_ERROR_NUM;
    _errors[-OB_CLOB_ONLY_SUPPORT_WITH_MULTIBYTE_FUN] = &_error_OB_CLOB_ONLY_SUPPORT_WITH_MULTIBYTE_FUN;
    _errors[-OB_ERR_UPDATE_TWICE] = &_error_OB_ERR_UPDATE_TWICE;
    _errors[-OB_ERR_FLASHBACK_QUERY_WITH_UPDATE] = &_error_OB_ERR_FLASHBACK_QUERY_WITH_UPDATE;
    _errors[-OB_ERR_UPDATE_ON_EXPR] = &_error_OB_ERR_UPDATE_ON_EXPR;
    _errors[-OB_ERR_SPECIFIED_ROW_NO_LONGER_EXISTS] = &_error_OB_ERR_SPECIFIED_ROW_NO_LONGER_EXISTS;

  }
};

inline const _error *get_error(int index)
{
  static ObStrErrorInit error_init;
  return _errors[index];
}

int get_oracle_errno(int index)
{
  return get_error(index)->oracle_errno;
}

int get_mysql_errno(int index)
{
  return get_error(index)->mysql_errno;
}

const char* get_oracle_str_error(int index)
{
  return get_error(index)->oracle_str_error;
}

const char* get_mysql_str_error(int index)
{
  return get_error(index)->str_error;
}

namespace oceanbase
{
namespace common
{
int g_all_ob_errnos[2220] = {0, -4000, -4001, -4002, -4003, -4004, -4005, -4006, -4007, -4008, -4009, -4010, -4011, -4012, -4013, -4014, -4015, -4016, -4017, -4018, -4019, -4020, -4021, -4022, -4023, -4024, -4025, -4026, -4027, -4028, -4029, -4030, -4031, -4032, -4033, -4034, -4035, -4036, -4037, -4038, -4039, -4041, -4042, -4043, -4044, -4045, -4046, -4047, -4048, -4049, -4050, -4051, -4052, -4053, -4054, -4055, -4057, -4058, -4060, -4061, -4062, -4063, -4064, -4065, -4066, -4067, -4068, -4070, -4071, -4072, -4073, -4074, -4075, -4076, -4077, -4078, -4080, -4081, -4084, -4085, -4090, -4097, -4098, -4099, -4100, -4101, -4102, -4103, -4104, -4105, -4106, -4107, -4108, -4109, -4110, -4111, -4112, -4113, -4114, -4115, -4116, -4117, -4118, -4119, -4120, -4121, -4122, -4123, -4124, -4125, -4126, -4127, -4128, -4133, -4138, -4139, -4142, -4143, -4144, -4146, -4147, -4149, -4150, -4151, -4152, -4153, -4154, -4155, -4156, -4157, -4158, -4159, -4160, -4161, -4162, -4163, -4164, -4165, -4166, -4167, -4168, -4169, -4170, -4171, -4172, -4173, -4174, -4175, -4176, -4177, -4178, -4179, -4180, -4181, -4182, -4183, -4184, -4185, -4186, -4187, -4188, -4189, -4190, -4191, -4192, -4200, -4201, -4204, -4205, -4206, -4207, -4208, -4209, -4210, -4211, -4212, -4213, -4214, -4215, -4216, -4217, -4218, -4219, -4220, -4221, -4222, -4223, -4224, -4225, -4226, -4227, -4228, -4229, -4230, -4231, -4232, -4233, -4234, -4235, -4236, -4237, -4238, -4239, -4240, -4241, -4242, -4243, -4244, -4245, -4246, -4247, -4248, -4249, -4250, -4251, -4252, -4253, -4254, -4255, -4256, -4257, -4258, -4260, -4261, -4262, -4263, -4264, -4265, -4266, -4267, -4268, -4269, -4270, -4271, -4273, -4274, -4275, -4276, -4277, -4278, -4279, -4280, -4281, -4282, -4283, -4284, -4285, -4286, -4287, -4288, -4289, -4290, -4291, -4292, -4293, -4294, -4295, -4296, -4297, -4298, -4299, -4300, -4301, -4302, -4303, -4304, -4305, -4306, -4307, -4308, -4309, -4310, -4311, -4312, -4313, -4314, -4315, -4316, -4317, -4318, -4319, -4320, -4321, -4322, -4323, -4324, -4325, -4326, -4327, -4328, -4329, -4330, -4331, -4332, -4333, -4334, -4335, -4336, -4337, -4338, -4339, -4340, -4341, -4342, -4343, -4344, -4345, -4346, -4347, -4348, -4349, -4350, -4351, -4352, -4353, -4354, -4355, -4356, -4357, -4358, -4359, -4360, -4361, -4362, -4363, -4364, -4365, -4366, -4367, -4368, -4369, -4370, -4371, -4372, -4373, -4374, -4375, -4376, -4377, -4378, -4379, -4380, -4381, -4382, -4383, -4385, -4386, -4387, -4388, -4389, -4390, -4391, -4392, -4393, -4394, -4395, -4396, -4397, -4398, -4399, -4400, -4401, -4402, -4403, -4505, -4507, -4510, -4512, -4515, -4517, -4518, -4519, -4523, -4524, -4525, -4526, -4527, -4528, -4529, -4530, -4531, -4532, -4533, -4537, -4538, -4539, -4540, -4541, -4542, -4543, -4544, -4545, -4546, -4547, -4548, -4549, -4550, -4551, -4552, -4553, -4554, -4600, -4601, -4602, -4603, -4604, -4605, -4606, -4607, -4608, -4609, -4610, -4611, -4613, -4614, -4615, -4620, -4621, -4622, -4623, -4624, -4625, -4626, -4628, -4629, -4630, -4631, -4632, -4633, -4634, -4636, -4637, -4638, -4639, -4640, -4641, -4642, -4643, -4644, -4645, -4646, -4647, -4648, -4649, -4650, -4651, -4652, -4653, -4654, -4655, -4656, -4657, -4658, -4659, -4660, -4661, -4662, -4663, -4664, -4665, -4666, -4667, -4668, -4669, -4670, -4671, -4672, -4673, -4674, -4675, -4676, -4677, -4678, -4679, -4680, -4681, -4682, -4683, -4684, -4685, -4686, -4687, -4688, -4689, -4690, -4691, -4692, -4693, -4694, -4695, -4696, -4697, -4698, -4699, -4700, -4701, -4702, -4703, -4704, -4705, -4706, -4707, -4708, -4709, -4710, -4711, -4712, -4713, -4714, -4715, -4716, -4717, -4718, -4719, -4720, -4721, -4722, -4723, -4724, -4725, -4726, -4727, -4728, -4729, -4730, -4731, -4732, -4733, -4734, -4735, -4736, -4737, -4738, -4739, -4740, -4741, -4742, -4743, -4744, -4745, -4746, -4747, -4748, -4749, -4750, -4751, -4752, -4753, -4754, -4755, -4756, -4757, -4758, -4759, -4760, -4761, -4762, -4763, -4764, -4765, -4766, -4767, -4768, -4769, -4770, -4771, -5000, -5001, -5002, -5003, -5006, -5007, -5008, -5010, -5011, -5012, -5014, -5015, -5016, -5017, -5018, -5019, -5020, -5022, -5023, -5024, -5025, -5026, -5027, -5028, -5029, -5030, -5031, -5032, -5034, -5035, -5036, -5037, -5038, -5039, -5040, -5041, -5042, -5043, -5044, -5046, -5047, -5050, -5051, -5052, -5053, -5054, -5055, -5056, -5057, -5058, -5059, -5061, -5063, -5064, -5065, -5066, -5067, -5068, -5069, -5070, -5071, -5072, -5073, -5074, -5080, -5081, -5083, -5084, -5085, -5086, -5087, -5088, -5089, -5090, -5091, -5092, -5093, -5094, -5095, -5096, -5097, -5098, -5099, -5100, -5101, -5102, -5103, -5104, -5105, -5106, -5107, -5108, -5109, -5110, -5111, -5112, -5113, -5114, -5115, -5116, -5117, -5118, -5119, -5120, -5121, -5122, -5123, -5124, -5125, -5130, -5131, -5133, -5134, -5135, -5136, -5137, -5138, -5139, -5140, -5142, -5143, -5144, -5145, -5146, -5147, -5148, -5149, -5150, -5151, -5153, -5154, -5155, -5156, -5157, -5158, -5159, -5160, -5161, -5162, -5163, -5164, -5165, -5166, -5167, -5168, -5169, -5170, -5171, -5172, -5173, -5174, -5175, -5176, -5177, -5178, -5179, -5180, -5181, -5182, -5183, -5184, -5185, -5187, -5188, -5189, -5190, -5191, -5192, -5193, -5194, -5195, -5196, -5197, -5198, -5199, -5200, -5201, -5202, -5203, -5204, -5205, -5206, -5207, -5208, -5209, -5210, -5211, -5212, -5213, -5214, -5215, -5216, -5217, -5218, -5219, -5220, -5221, -5222, -5223, -5224, -5225, -5226, -5227, -5228, -5229, -5230, -5231, -5233, -5234, -5235, -5236, -5237, -5238, -5239, -5240, -5241, -5242, -5243, -5244, -5245, -5246, -5247, -5248, -5249, -5250, -5251, -5252, -5253, -5254, -5255, -5256, -5257, -5258, -5259, -5260, -5261, -5262, -5263, -5264, -5265, -5266, -5267, -5268, -5269, -5270, -5271, -5272, -5273, -5274, -5275, -5276, -5277, -5278, -5279, -5280, -5281, -5282, -5283, -5284, -5285, -5286, -5287, -5288, -5289, -5290, -5291, -5292, -5293, -5294, -5295, -5296, -5297, -5298, -5299, -5300, -5301, -5302, -5303, -5304, -5305, -5306, -5307, -5308, -5309, -5310, -5311, -5312, -5313, -5314, -5315, -5316, -5317, -5318, -5319, -5320, -5321, -5322, -5323, -5324, -5325, -5326, -5327, -5328, -5329, -5330, -5331, -5332, -5333, -5334, -5335, -5336, -5337, -5338, -5339, -5340, -5341, -5342, -5343, -5344, -5345, -5346, -5347, -5348, -5349, -5350, -5351, -5352, -5353, -5354, -5355, -5356, -5357, -5358, -5359, -5360, -5361, -5362, -5363, -5364, -5365, -5366, -5367, -5368, -5369, -5370, -5371, -5372, -5373, -5374, -5375, -5376, -5377, -5378, -5379, -5380, -5381, -5382, -5383, -5384, -5385, -5386, -5387, -5388, -5389, -5390, -5400, -5401, -5402, -5403, -5404, -5405, -5406, -5407, -5408, -5409, -5410, -5411, -5412, -5413, -5414, -5415, -5416, -5417, -5418, -5419, -5420, -5421, -5422, -5423, -5424, -5425, -5426, -5427, -5428, -5429, -5430, -5431, -5432, -5433, -5434, -5435, -5436, -5437, -5438, -5439, -5440, -5441, -5442, -5443, -5444, -5445, -5446, -5447, -5448, -5449, -5450, -5451, -5452, -5453, -5454, -5455, -5456, -5457, -5458, -5459, -5460, -5461, -5462, -5463, -5464, -5465, -5466, -5467, -5468, -5469, -5470, -5471, -5472, -5473, -5474, -5475, -5476, -5477, -5478, -5479, -5480, -5481, -5482, -5483, -5484, -5485, -5486, -5487, -5488, -5489, -5490, -5491, -5492, -5493, -5494, -5495, -5496, -5497, -5498, -5499, -5500, -5501, -5502, -5503, -5504, -5505, -5506, -5507, -5508, -5509, -5510, -5511, -5512, -5513, -5514, -5515, -5516, -5517, -5518, -5540, -5541, -5542, -5543, -5544, -5545, -5546, -5547, -5548, -5549, -5550, -5551, -5552, -5553, -5554, -5555, -5556, -5557, -5558, -5559, -5560, -5561, -5562, -5563, -5564, -5565, -5566, -5567, -5568, -5569, -5570, -5571, -5572, -5573, -5574, -5575, -5576, -5577, -5578, -5579, -5580, -5581, -5582, -5583, -5584, -5585, -5586, -5587, -5588, -5589, -5590, -5591, -5592, -5593, -5594, -5595, -5596, -5597, -5598, -5599, -5600, -5601, -5602, -5603, -5604, -5605, -5607, -5608, -5609, -5610, -5611, -5612, -5613, -5614, -5615, -5616, -5617, -5618, -5619, -5620, -5621, -5622, -5623, -5624, -5625, -5626, -5627, -5628, -5629, -5630, -5631, -5632, -5633, -5634, -5635, -5636, -5637, -5638, -5639, -5640, -5641, -5642, -5643, -5644, -5645, -5646, -5647, -5648, -5649, -5650, -5651, -5652, -5653, -5654, -5655, -5656, -5657, -5658, -5659, -5660, -5661, -5662, -5663, -5664, -5665, -5666, -5667, -5668, -5671, -5672, -5673, -5674, -5675, -5676, -5677, -5678, -5679, -5680, -5681, -5682, -5683, -5684, -5685, -5686, -5687, -5688, -5689, -5690, -5691, -5692, -5693, -5694, -5695, -5696, -5697, -5698, -5699, -5700, -5701, -5702, -5703, -5704, -5705, -5706, -5707, -5708, -5709, -5710, -5711, -5712, -5713, -5714, -5715, -5716, -5717, -5718, -5719, -5720, -5721, -5722, -5723, -5724, -5725, -5726, -5727, -5728, -5729, -5730, -5731, -5732, -5733, -5734, -5735, -5736, -5737, -5738, -5739, -5740, -5741, -5742, -5743, -5744, -5745, -5746, -5747, -5748, -5749, -5750, -5751, -5752, -5753, -5754, -5755, -5756, -5757, -5758, -5759, -5760, -5761, -5762, -5763, -5764, -5765, -5766, -5768, -5769, -5770, -5771, -5772, -5773, -5774, -5777, -5778, -5779, -5780, -5781, -5785, -5786, -5787, -5788, -5789, -5790, -5791, -5792, -5793, -5794, -5795, -5796, -5797, -5798, -5799, -5800, -5801, -5802, -5803, -5804, -5805, -5806, -5807, -5808, -5809, -5810, -5811, -5812, -5813, -5814, -5815, -5816, -5817, -5818, -5819, -5820, -5821, -5822, -5823, -5824, -5825, -5826, -5827, -5828, -5829, -5830, -5831, -5832, -5833, -5834, -5835, -5836, -5837, -5838, -5839, -5840, -5841, -5842, -5843, -5844, -5845, -5846, -5847, -5848, -5849, -5850, -5851, -5852, -5853, -5854, -5855, -5856, -5857, -5858, -5859, -5860, -5861, -5862, -5863, -5864, -5865, -5866, -5867, -5868, -5869, -5870, -5871, -5872, -5873, -5874, -5875, -5876, -5877, -5878, -5879, -5880, -5881, -5882, -5883, -5884, -5885, -5886, -5887, -5888, -5889, -5890, -5891, -5892, -5893, -5894, -5895, -5896, -5897, -5898, -5899, -5900, -5901, -5902, -5903, -5904, -5905, -5906, -5907, -5908, -5909, -5910, -5911, -5912, -5913, -5914, -5915, -5916, -5917, -5918, -5919, -5920, -5921, -5922, -5923, -5924, -5925, -5926, -5927, -5928, -5929, -5930, -5931, -5932, -5933, -5934, -5935, -5936, -5937, -5938, -5939, -5940, -5941, -5942, -5943, -5944, -5945, -5946, -5947, -5948, -5949, -5950, -5951, -5952, -5953, -5954, -5955, -5956, -5957, -5958, -5959, -5960, -5961, -5962, -5963, -5964, -5965, -5966, -5967, -5968, -5969, -5970, -5971, -5972, -5973, -5974, -5975, -5976, -5977, -5978, -5979, -5980, -5981, -5982, -5983, -5984, -5985, -5986, -5987, -5988, -5989, -5990, -5991, -5992, -5993, -5994, -5995, -5996, -5997, -5998, -5999, -6000, -6001, -6002, -6003, -6004, -6005, -6006, -6201, -6202, -6203, -6204, -6205, -6206, -6207, -6208, -6209, -6210, -6211, -6212, -6213, -6214, -6215, -6219, -6220, -6221, -6222, -6223, -6224, -6225, -6226, -6227, -6228, -6229, -6230, -6231, -6232, -6233, -6234, -6235, -6236, -6237, -6238, -6239, -6240, -6241, -6242, -6243, -6244, -6245, -6246, -6247, -6248, -6249, -6250, -6251, -6252, -6253, -6254, -6255, -6256, -6257, -6258, -6259, -6260, -6261, -6262, -6263, -6264, -6265, -6266, -6267, -6268, -6269, -6270, -6271, -6272, -6273, -6274, -6275, -6276, -6277, -6278, -6279, -6280, -6281, -6282, -6283, -6284, -6285, -6301, -6302, -6303, -6304, -6305, -6306, -6307, -6308, -6309, -6310, -6311, -6312, -6313, -6314, -6315, -6316, -6317, -6318, -6319, -6320, -6321, -6322, -6323, -6324, -6325, -6326, -6327, -6328, -6329, -6330, -7000, -7001, -7002, -7003, -7004, -7005, -7006, -7007, -7010, -7011, -7012, -7013, -7014, -7015, -7021, -7022, -7024, -7025, -7026, -7027, -7029, -7030, -7031, -7032, -7033, -7034, -7035, -7036, -7037, -7038, -7039, -7040, -7041, -7100, -7101, -7102, -7103, -7104, -7105, -7106, -7107, -7108, -7109, -7110, -7111, -7112, -7113, -7114, -7115, -7116, -7117, -7118, -7119, -7120, -7121, -7122, -7123, -7201, -7202, -7203, -7204, -7205, -7206, -7207, -7208, -7209, -7210, -7211, -7212, -7213, -7214, -7215, -7216, -7217, -7218, -7219, -7220, -7221, -7222, -7223, -7224, -7225, -7226, -7227, -7228, -7229, -7230, -7231, -7232, -7233, -7234, -7235, -7236, -7237, -7238, -7239, -7240, -7241, -7242, -7243, -7244, -7246, -7247, -7248, -7249, -7250, -7251, -7252, -7253, -7254, -7255, -7256, -7257, -7258, -7259, -7260, -7261, -7262, -7263, -7264, -7265, -7266, -7267, -7268, -7269, -7270, -7271, -7272, -7273, -7274, -7275, -7276, -7277, -7278, -7279, -7280, -7281, -7282, -7283, -7284, -7285, -7286, -7287, -7288, -7289, -7290, -7291, -7292, -7293, -7294, -7295, -7296, -7297, -7402, -7403, -7404, -7405, -7406, -7407, -7408, -7409, -7410, -7411, -7412, -7413, -7414, -7415, -7416, -7417, -7418, -7419, -7420, -7421, -7422, -7423, -7424, -7425, -7426, -7427, -7428, -7429, -7430, -7431, -7432, -7433, -8001, -8002, -8003, -8004, -8005, -9001, -9002, -9003, -9004, -9005, -9006, -9007, -9008, -9009, -9010, -9011, -9012, -9013, -9014, -9015, -9016, -9017, -9018, -9019, -9020, -9022, -9023, -9024, -9025, -9026, -9027, -9028, -9029, -9030, -9031, -9032, -9033, -9034, -9035, -9036, -9037, -9038, -9039, -9040, -9041, -9042, -9043, -9044, -9045, -9046, -9047, -9048, -9049, -9050, -9051, -9052, -9053, -9054, -9057, -9058, -9059, -9060, -9061, -9062, -9063, -9064, -9065, -9066, -9069, -9070, -9071, -9072, -9073, -9074, -9075, -9076, -9077, -9078, -9079, -9080, -9081, -9082, -9083, -9084, -9085, -9086, -9087, -9088, -9089, -9090, -9091, -9092, -9093, -9094, -9095, -9096, -9097, -9098, -9099, -9100, -9101, -9102, -9103, -9104, -9105, -9106, -9107, -9108, -9109, -9110, -9111, -9112, -9200, -9201, -9202, -9501, -9502, -9503, -9504, -9505, -9506, -9507, -9508, -9509, -9510, -9512, -9513, -9514, -9515, -9516, -9518, -9519, -9520, -9521, -9522, -9523, -9524, -9525, -9526, -9527, -9528, -9529, -9530, -9531, -9532, -9533, -9534, -9535, -9536, -9537, -9538, -9539, -9540, -9541, -9542, -9543, -9544, -9545, -9546, -9547, -9548, -9549, -9550, -9551, -9552, -9553, -9554, -9555, -9556, -9557, -9558, -9559, -9560, -9561, -9562, -9563, -9564, -9565, -9566, -9567, -9568, -9569, -9570, -9571, -9572, -9573, -9574, -9575, -9576, -9577, -9578, -9579, -9580, -9581, -9582, -9583, -9584, -9585, -9586, -9587, -9588, -9589, -9590, -9591, -9592, -9593, -9594, -9595, -9596, -9597, -9598, -9599, -9600, -9601, -9602, -9603, -9604, -9605, -9606, -9607, -9608, -9609, -9610, -9611, -9612, -9613, -9614, -9615, -9616, -9617, -9618, -9619, -9620, -9621, -9622, -9623, -9624, -9625, -9626, -9627, -9628, -9629, -9630, -9631, -9632, -9633, -9634, -9635, -9636, -9637, -9638, -9639, -9640, -9641, -9642, -9643, -9644, -9645, -9646, -9647, -9648, -9649, -9650, -9651, -9652, -9653, -9654, -9655, -9656, -9657, -9658, -9659, -9660, -9661, -9662, -9663, -9664, -9665, -9666, -9667, -9668, -9669, -9670, -9671, -9672, -9673, -9674, -9675, -9676, -9677, -9678, -9679, -9680, -9681, -9682, -9683, -9684, -9685, -9686, -9687, -9688, -9689, -9690, -9691, -9692, -9693, -9694, -9695, -9696, -9697, -9698, -9699, -9700, -9701, -9702, -9703, -9704, -9705, -9706, -9707, -9708, -9709, -9710, -9711, -9712, -9713, -9714, -9715, -9716, -9717, -9718, -9719, -9720, -9721, -9722, -9723, -9724, -9725, -9726, -9727, -9728, -9729, -9730, -9731, -9732, -9733, -9734, -9735, -9736, -9737, -9738, -9739, -9740, -9741, -9742, -9743, -9744, -9745, -9746, -9747, -9748, -9749, -9750, -9751, -9752, -9753, -9754, -9755, -9756, -9757, -9758, -9759, -9760, -9761, -9762, -9763, -9764, -9765, -10500, -10501, -10502, -10503, -10504, -10505, -10506, -10507, -10508, -10509, -10510, -10511, -10512, -10513, -10650, -11000, -11001, -11002, -11003, -11004, -11005, -11006, -11007, -11008, -11009, -11010, -11011, -11012, -11013, -11014, -20000, -21000, -22998, -30926, -32491, -38104, -38105};
  const char *ob_error_name(const int err)
  {
    const char *ret = "Unknown error";
    if (OB_UNLIKELY(0 == err)) {
      ret = "OB_SUCCESS";
    } else if (OB_LIKELY(0 > err && err > -OB_MAX_ERROR_CODE)) {
      ret = get_error(-err)->error_name;
      if (OB_UNLIKELY(NULL == ret || '\0' == ret[0]))
      {
        ret = "Unknown Error";
      }
    }
    return ret;
  }
  const char *ob_error_cause(const int err)
  {
    const char *ret = "Internal Error";
    if (OB_UNLIKELY(0 == err)) {
      ret = "Not an Error";
    } else if (OB_LIKELY(0 > err && err > -OB_MAX_ERROR_CODE)) {
      ret = get_error(-err)->error_cause;
      if (OB_UNLIKELY(NULL == ret || '\0' == ret[0]))
      {
        ret = "Internal Error";
      }
    }
    return ret;
  }
  const char *ob_error_solution(const int err)
  {
    const char *ret = "Contact OceanBase Support";
    if (OB_UNLIKELY(0 == err)) {
      ret = "Contact OceanBase Support";
    } else if (OB_LIKELY(0 > err && err > -OB_MAX_ERROR_CODE)) {
      ret = get_error(-err)->error_solution;
      if (OB_UNLIKELY(NULL == ret || '\0' == ret[0]))
      {
        ret = "Contact OceanBase Support";
      }
    }
    return ret;
  }
  const char *ob_strerror(const int err)
  {
    const char *ret = "Unknown error";
    if (OB_LIKELY(0 >= err && err > -OB_MAX_ERROR_CODE)) {
      ret = get_error(-err)->str_error;
      if (OB_UNLIKELY(NULL == ret || '\0' == ret[0]))
      {
        ret = "Unknown Error";
      }
    }
    return ret;
  }
  const char *ob_str_user_error(const int err)
  {
    const char *ret = NULL;
    if (OB_LIKELY(0 >= err && err > -OB_MAX_ERROR_CODE)) {
      ret = get_error(-err)->str_user_error;
      if (OB_UNLIKELY(NULL == ret || '\0' == ret[0])) {
        ret = NULL;
      }
    }
    return ret;
  }
  const char *ob_sqlstate(const int err)
  {
    const char *ret = "HY000";
    if (OB_LIKELY(0 >= err && err > -OB_MAX_ERROR_CODE)) {
      ret = get_error(-err)->sqlstate;
      if (OB_UNLIKELY(NULL == ret || '\0' == ret[0])) {
        ret = "HY000";
      }
    }
    return ret;
  }
  int ob_mysql_errno(const int err)
  {
    int ret = -1;
    if (OB_LIKELY(0 >= err && err > -OB_MAX_ERROR_CODE)) {
      ret = get_error(-err)->mysql_errno;
    }
    return ret;
  }
  int ob_mysql_errno_with_check(const int err)
  {
    int ret = (err > 0 ? err : ob_mysql_errno(err));
    if (ret < 0) {
      ret = -err;
    }
    return ret;
  }
  const char *ob_oracle_strerror(const int err)
  {
    const char *ret = "Unknown error";
    if (OB_LIKELY(0 >= err && err > -OB_MAX_ERROR_CODE)) {
      ret = get_error(-err)->oracle_str_error;
      if (OB_UNLIKELY(NULL == ret || '\0' == ret[0]))
      {
        ret = "Unknown Error";
      }
    }
    return ret;
  }
  const char *ob_oracle_str_user_error(const int err)
  {
    const char *ret = NULL;
    if (OB_LIKELY(0 >= err && err > -OB_MAX_ERROR_CODE)) {
      ret = get_error(-err)->oracle_str_user_error;
      if (OB_UNLIKELY(NULL == ret || '\0' == ret[0])) {
        ret = NULL;
      }
    }
    return ret;
  }
  int ob_oracle_errno(const int err)
  {
    int ret = -1;
    if (OB_ERR_PROXY_REROUTE == err) {
      // Oracle Mode and MySQL mode should return same errcode for reroute sql
      // thus we make the specialization here
      ret = -1;
    } else if (err >= OB_MIN_RAISE_APPLICATION_ERROR && err <= OB_MAX_RAISE_APPLICATION_ERROR) {
      ret = err; // PL/SQL Raise Application Error
    } else if (OB_LIKELY(0 >= err && err > -OB_MAX_ERROR_CODE)) {
      ret = get_error(-err)->oracle_errno;
    }
    return ret;
  }
  int ob_oracle_errno_with_check(const int err)
  {
    int ret = ob_oracle_errno(err);
    if (ret < 0) {
      ret = -err;
    }
    return ret;
  }
  int ob_errpkt_errno(const int err, const bool is_oracle_mode)
  {
    return (is_oracle_mode ? ob_oracle_errno_with_check(err) : ob_mysql_errno_with_check(err));
  }
  const char *ob_errpkt_strerror(const int err, const bool is_oracle_mode)
  {
    return (is_oracle_mode ? ob_oracle_strerror(err) : ob_strerror(err));
  }
  const char *ob_errpkt_str_user_error(const int err, const bool is_oracle_mode)
  {
    return (is_oracle_mode ? ob_oracle_str_user_error(err) : ob_str_user_error(err));
  }

} // end namespace common
} // end namespace oceanbase
